java基礎學習筆記(四)—— 流程語句
A strong man can save himself,a great man can save another.
| @Author:TTODS
分支語句
分支語句使程序具有了判斷能力
if 語句
String animal = "龍";
if(animal=="青蛙") {
System.out.println("奧!是青蛙!呱呱~");
}else if(animal=="小貓") {
System.out.println("奧!是小貓!喵喵~");
}else if(animal=="小狗") {
System.out.println("奧!是小狗!汪汪~");
}else {
System.out.println("??神祕生物?我還沒見過呢!");
}
輸出
??神祕生物?我還沒見過呢!
switch語句
String animal = "小狗";
switch(animal) {
case "青蛙":
System.out.println("奧!是青蛙!呱呱~");
break;
case "小貓":
System.out.println("奧!是小貓!喵喵~");
break;
case "小狗":
System.out.println("奧!是小狗!汪汪~");
break;
default:
System.out.println("??神祕生物?我還沒見過呢!");
}
輸出
奧!是小狗!汪汪~
循環語句
循環語句可以讓代碼重複運行
while語句
輸出區間[0,40)內的偶數
int i = 0;
while(i<40) {
if(i%2==0)
System.out.print(i+" ");
i++;
}
輸出
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38
do-while語句
輸出區間[0,40)內的偶數
int i = 0;
do{
if(i%2==0)
System.out.print(i+" ");
i++;
}while(i<40)
輸出
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38
值得注意的是:do-while語句的判斷條件在循環體的後面,就是說循環體至少會運行一遍,例如:
int i = 40;
do{
if(i%2==0)
System.out.print(i+" ");
i++;
}while(i<40);
輸出
40
for語句
for(int i=0;i<40;i++) {
if(i%2==0)
System.out.print(i+" ");
}
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38
for-each語句
String[] zoo = {"青蛙","小貓","小狗","恐龍","外星人"};
System.out.println("動物園裏有什麼?");
for(String animal : zoo) {
System.out.print(animal+" ");
}
輸出
動物員裏有什麼?
青蛙 小貓 小狗 恐龍 外星人
跳轉語句
跳轉語句能夠改變程序執行的順序,可以實現程序的跳轉。
break語句
九九乘法表
for(int i=1;i<10;i++) {
for(int j=1;j<10;j++) {
if(j>i) break;
System.out.printf("%d*%d=%2d ",j,i,i*j);
}
System.out.println();
}
輸出
1*1= 1
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
break的默認用法時跳出最近的內循環,如果在多重循環中想要跳出指定的循環層,可以使用break+label語句,如將上面代碼改寫成如下代碼:
a: for(int i=1;i<10;i++) {
for(int j=1;j<10;j++) {
if(j>i) break a;
System.out.printf("%d*%d=%2d ",j,i,i*j);
}
System.out.println();
}
輸出:
1*1= 1
break+label語句可以要程序直接跳出label指定的循環層;
continue語句
continue語句不同於break語句,continue語句用來結束本次循環,跳過循環體中尚未執行的語句,接着進行循環終止條件的判斷,決定是否繼續循環。對於for語句,在進行循環終止條件的判斷前,還要先執行迭代語句(下例中的i++
)。
for(int i =0;i<=5;i++) {
if(i==3)
continue;
System.out.print(i+" ");
}
輸出:
0 1 2 4 5
類似的,continue語句也有continue+label用法,通過下面兩段代碼對比,應該還是比較容易理解的。
continue:
for(int i=0;i<10;i++) {
for(int j=0;j<10;j++) {
if(j==4)
continue;
System.out.print(i);
}
System.out.println();
}
輸出
000000000
111111111
222222222
333333333
444444444
555555555
666666666
777777777
888888888
999999999
continue+label
a: for(int i=0;i<10;i++) {
for(int j=0;j<10;j++) {
if(j==4)
continue a;
System.out.print(i);
}
System.out.println();
}
輸出
0000111122223333444455556666777788889999