Java基礎6-控制語句
一、控制語句的種類
java控制語句主要分為7種
1.控制選擇結構語句
- if, if else
- switch
2.控制循環結構語句
- for
- while
- do while
3.改變控制語句順序
- break
- continue
一、控制選擇結構語句
1.if,if else語句
關於java語言中的if語句,屬於選擇結構,if語句又被稱為分支語句/條件控制語句:
1.if語句的語法結構:四種編寫方式
第一種:
if(布爾表達式){
java語句;
}
第二種
if(布爾表達式){
Java語句;
}else{
java語句;
}
第三種
if(布爾表達式){
java語句;
}else if(布爾表達式){
java語句;
}
else if(){
}
第四種
if(布爾表達式){
Java語句;
}else{
java語句;
}
第三種
if(布爾表達式){
java語句;
}else if(布爾表達式){
java語句;
}
else if(){
}else{
}
4.所有控制語句都可以嵌套使用,只要合理嵌套就行
註意:嵌套使用的時候,代碼格式要保證完美【該縮進的時候必須要縮進】
5.if語句的分支中只有一條java語句的話,大括號可以省略不寫,不推薦
if(true/false)java語句;
import java.util.Random; //導包 public class call { public static void main(String[] args){ //創建一個隨機數對象r Random r=new Random(); //在0-11這12個數中產生一個隨機數賦值給i int i=r.nextInt(12); String name0="王海文"; String name1="李寶林"; String name2="田雨"; String name3="桑建武"; String name4="王龍翔"; String name5="郭佳訊"; String name6if,else if語句代碼示例,隨機點名系統="陳敬瑜"; String name7="魏仲豪"; String name8="王宇飛"; String name9="高健"; String name10="李壯壯"; String name11="張祿"; //判斷i的值並打印輸出相對應的姓名 if(i==0){ System.out.println(name0); } else if(i==1){ System.out.println(name1); } else if(i==2){ System.out.println(name2); } else if(i==3){ System.out.println(name3); } else if(i==4){ System.out.println(name4); } else if(i==5){ System.out.println(name5); } else if(i==6){ System.out.println(name6); } else if(i==7){ System.out.println(name7); } else if(i==8){ System.out.println(name8); } else if(i==9){ System.out.println(name9); } else if(i==10){ System.out.println(name0); } else if(i==11){ System.out.println(name11); } } }
2.switch語句
1.switch語句也屬於選擇結構,也是分支語句
2.switch語句語法結構
switch(int或String類型的字面值或變量){
case int或String類型的字面值或變量:
java語句;
break;
case int或String類型的字面值或變量:
java語句;
break;
default:
java語句;
}
3.switch語句的執行原理:
switch後面小括號當中的“數據”和case後面的“數據”進行一一匹配,匹配成功的分支語句執行。
4.匹配成功的分支執行,分支當中最後有break語句的話整個switch語句終止。
5.匹配成功的分支執行,分支當中沒有break語句的話,直接進入下一個分支執行【不進行匹配】,這種現象被稱為case穿透現象。
6.所有分支都沒有匹配成功,當有default語句,會執行default分支當中的程序
7.switch後面和case後面只能是int或String類型的數據,不能使探測其他類型,當然byte、short、char也可以直接寫到switch和case後面,因為可以自動轉換成int。
8.case可以合並:
int i=10;
switch(i){
case 1:case 2:case 3:case 10:
System0out.println("aaa")
}
*/
import java.util.Scanner; public class workday { public static void main(String[] args){ System.out.println("請輸入1-7中任意數字"); Scanner sc=new Scanner(System.in); //控制臺輸入,後邊說 int num=sc.nextInt(); switch(num){ case 1: case 2: case 3: case 4: case 5: //若num=1,2,3,4,5都會執行輸出去上班 System.out.println("滾去上班"); break; case 6: case 7: System.out.println("盡情嗨起來"); break; default: System.out.println("大傻逼,輸錯了"); break; } } }switch語句代碼示例
二、控制循環結構語句
1.for循環
1.for循環的結構
for(初始化表達式:布爾表達式:更新表達式){
是需要重復執行的代碼片段【循環體:由java語句構成】
}
2.for循環的執行過程/重復原理?
2.1 初始化表達式、布爾表達式、更新表達式都不是必須的,但是兩個分號是必須的;
2.2 初始化表達式最先執行,並且在整個for循環當中只執行一次
2.3 布爾表達式必須是true/false
2.4 for的執行過程
for(① ; ② ; ③){
④
}
第一步,執行①
第二步,執行②,如果判斷結果為true,執行第三步,如果判斷結果為false,執行第五步
第三步,執行④
第四步,執行③,然後重復執行第二步
第五步,退出循環
用for循環打印菱形(嵌套):
public class circulation { public static void main(String[] args){ //這個是打印直角三角形 for (int i=1;i<=7;i++ ) //外層循環控制行 { for (int j=1;j<=i ;j++ ) { System.out.print("*"); } System.out.println("\n"); } //倒序排列,倒直角三角 for (int i=1;i<=9 ;i++) { for (int j=9;j>=i ;j-- ) { //當j大於i時打印輸出*,例如當i=1,j=9,j>i,輸出*,j-1=8>i=1,繼續輸出*,當j--到1時,j=i,條件不滿足,結束本次循環 //外層循環此時i<9,i+1=2<9,滿足條件,再進行內層for循環,以此往復。 System.out.print("*"); } System.out.println("\n"); } //打印菱形的2組for循環,並且每組for循環裏又嵌套3個for循環,共8個for循環 for (int i=1;i<=8 ;i++ ) { for (int k=8;k>i ;k-- ) { //當滿足k>i這個條件就打印空格 System.out.print(" "); } //打印完空格後緊接著在空格後邊打印* for (int j=1;j<=i ;j++ ) { System.out.print("*"); } //上邊循環打印完成後緊接著繼續打印一組* for (int j=1;j<=i ;j++ ) { System.out.print("*"); } //"\n"是一個轉義字符,為換行 System.out.println("\n"); } //這是倒菱形的下半部分,倒三角形 for (int i=1;i<=7 ;i++) { for (int k=1;k<=i ;k++ ) { System.out.print(" "); } for (int j=7;j>=i ;j-- ) { System.out.print("*"); } for (int j=7;j>=i ;j-- ) { System.out.print("*"); } System.out.println("\n"); } /*for (int i=1;i<=8 ;i++ ) { for (int k=8;k>i ;k-- ) { System.out.print(" "); } for (int j=1;j<=i ;j++ ) { System.out.print("*"); } System.out.println("\n"); } */ } }
2.while循環
1、while和do while循環語法結構
while(布爾表達式){
循環體
}
2.while循環的循環次數:
0~N次
註意:while循環的循環體可能執行次數為0次
3.do while循環
do {
執行語句
} while(循環條件){};
先執行再循環
4.無限循環
while(true){}
或
for(;;){}
無限循環存在的原因是並不知道循環多少次,而是根據某些條件,來控制循環。
class note11 { public static void main(String[] args) { while(true){ System.out.println("死循環"); } //編譯器檢測到該程序永遠都無法被執行,所以編譯報錯 System.out.println("Hello World!"); } }
import java.util.Scanner; import java.util.ArrayList; class Bitch { public static void main(String[] args) { ArrayList<Fuck> list=new ArrayList<Fuck>(); //while無限循環與switch語句嵌套使用 while(true){ switch (Choose()) { case 1: inventory(list); break; case 2: AddGoods(list); break; case 3: alter(list); break; case 4: delete(list); break; case 5: //當用戶輸入5的時候結束循環,否則循環一直執行 return; default: System.out.println("您選擇的功能有誤,請重新輸入!"); break; } } } //用戶選擇; public static int Choose(){ System.out.println("-------------------庫存管理--------------"); System.out.println("1.查看庫存清單"); System.out.println("2.添加商品信息"); System.out.println("3.修改商品信息"); System.out.println("4.刪除商品信息"); System.out.println("5.退出"); Scanner sc=new Scanner(System.in); System.out.println("請輸入您的選擇"); int num=sc.nextInt(); return num; } //添加商品信息 public static void AddGoods(ArrayList<Fuck> list){ Scanner sc=new Scanner(System.in); while (true) { System.out.println("1.繼續添加商品"); System.out.println("2.退出"); int number=sc.nextInt(); if (number==1) { Fuck you=new Fuck(); System.out.println("請輸入您要添加的商品品牌/尺寸/價格/數量"); you.brands=sc.next(); you.size=sc.nextDouble(); you.price=sc.nextDouble(); you.counts=sc.nextInt(); list.add(you); }else{ return; } inventory(list); } } //修改商品信息 public static void alter(ArrayList<Fuck> list){ Scanner sc=new Scanner(System.in); while(true){ System.out.println("1.繼續修改"); System.out.println("2.退出"); int number=sc.nextInt(); switch(number){ case 1: System.out.println("---------當前商品庫存信息--------"); System.out.println("商品編號\t商品品牌\t庫存數量"); for(int i=0;i<list.size();i++){ System.out.println((i+1)+"\t"+list.get(i).brands+ "\t"+list.get(i).counts); } System.out.println("請輸入您要修改的商品編號:"); int num=sc.nextInt()-1; System.out.println("請輸入您要修改的商品數量:"); list.get(num).counts=sc.nextInt(); inventory(list); break; case 2: return; default: System.out.println("大傻逼"); break; } } } //刪除商品信息 public static void delete(ArrayList<Fuck> list){ System.out.println("---------當前商品庫存信息--------"); System.out.println("商品編號\t商品品牌\t庫存數量"); for(int i=0;i<list.size();i++){ System.out.println((i+1)+"\t"+list.get(i).brands+ "\t"+list.get(i).counts); } System.out.println("請輸入您要刪除的商品編號:"); Scanner sc=new Scanner(System.in); int num=sc.nextInt()-1; list.remove(num); } //查看庫存清單 public static void inventory(ArrayList<Fuck> list){ System.out.println("---------------商城庫存清單-------------"); System.out.println("商品品牌\t商品尺寸\t商品價格\t庫存數量"); double SumCounts=0; int SumPrice=0; for (int i=0;i<list.size();i++ ) { System.out.println(list.get(i).brands+‘\t‘+list.get(i).size+‘\t‘+list.get(i).price+‘\t‘+list.get(i).counts); SumCounts+=list.get(i).counts; SumPrice+=list.get(i).counts*list.get(i).price; } System.out.println("-----------------------------------------"); System.out.println("總庫存數:"+SumCounts); System.out.println("總金額:"+SumPrice); } }無限循環
三、循環控制語句
break
1.break語句同樣可以使用在循環語句當中,用來終止循環
2.break語句可以使用在for,while,do...while循環語句中用來跳出循環
continue
1.表示繼續,下一個
2.主要出現在循環語句控制循環的執行
3.break和continue的區別?
break表示循環不執行了
continue表示直接進入下一個
Java基礎6-控制語句