第四章 控制執(zhí)行流程
4.1 true和false
4.2 if-else
4.3 迭代
while次屠、do-while媒楼、for
4.4 Foreach語法
foreach 語法乐尊,表示不必創(chuàng)建int變量去訪問項(xiàng)構(gòu)成的序列進(jìn)行計(jì)數(shù),foreach 將自動(dòng)產(chǎn)生每一項(xiàng)划址。
//: control/ForEachFloat.java
import java.util.*;
public class ForEachFloat {
public static void main(String[] args) {
Random rand = new Random(47);
float f[] = new float[10];
for(int i = 0; i < 10; i++)
f[i] = rand.nextFloat();
for(float x : f)
System.out.println(x);
}
} /* Output:
0.72711575
0.39982635
0.5309454
0.0534122
0.16020656
0.57799757
0.18847865
0.4170137
0.51660204
0.73734957
*///:~
for(float x : f)
定義一個(gè)float類型的變量x扔嵌,繼而將每一個(gè)f的元素賦值給x。
4.5 return
4.6 break和continue
- break用于強(qiáng)行退出循環(huán)夺颤,不執(zhí)行循環(huán)中剩余的語句
- continue 則停止執(zhí)行當(dāng)前的迭代痢缎,然后退回循環(huán)起始處,開始下一次迭代世澜。
//: control/BreakAndContinue.java
// Demonstrates break and continue keywords.
import static net.mindview.util.Range.*;
public class BreakAndContinue {
public static void main(String[] args) {
for(int i = 0; i < 100; i++) {
if(i == 74) break; // Out of for loop
if(i % 9 != 0) continue; // Next iteration
System.out.print(i + " ");
}
System.out.println();
// Using foreach:
for(int i : range(100)) {
if(i == 74) break; // Out of for loop
if(i % 9 != 0) continue; // Next iteration
System.out.print(i + " ");
}
System.out.println();
int i = 0;
// An "infinite loop":
while(true) {
i++;
int j = i * 27;
if(j == 1269) break; // Out of loop
if(i % 10 != 0) continue; // Top of loop
System.out.print(i + " ");
}
}
} /* Output:
0 9 18 27 36 45 54 63 72
0 9 18 27 36 45 54 63 72
10 20 30 40
*///:~
-標(biāo)簽独旷,是后面跟有冒號的標(biāo)識符,eg. label1:
label1:
outer-iteration {
innner-iteration{
//...
break;//(1)
//...
continue;//(2)
//...
continue label1;//(3)
//...
break label1;//(4)
}
}
在(3)中寥裂,continue label1 同時(shí)中斷內(nèi)部迭代以及外部迭代嵌洼,直接轉(zhuǎn)到 label1 處,隨后繼續(xù)迭代封恰。在(4)中麻养, break label1 也中斷所有迭代,并回到label1 處诺舔,但并不重新進(jìn)入迭代鳖昌。
4.8 switch
switch ( ) {
case : ; break;
default: ;
}