Java當(dāng)中涉及的常見流程控制語句包括if-else(其中else可選), while, do-while, for, return, break, switch.
True和False
Java不允許將一個數(shù)字作為布爾值利用,例如 if(2)慢显,然而這在C和C++中是允許的(true是非零笆凌,false是零)。
if-else
if(Boolean-expression)
? ? ? ?statement
或者
if(Boolean-expression)
? ? ? ?statement
else
? ? ? ?statement
while和do-while
while(Boolean-expression)
? ? ? ?statement
do
? ? ? ?statement
while(Boolean-expression)
while和do-while的唯一區(qū)別就是do-while中的語句會至少執(zhí)行一次。
for
for(initialization;Boolean-expression;step)
? ? ? ?statement
每次迭代前都會測試條件是否滿足,每次循環(huán)結(jié)束會進(jìn)行一次step。
Java中唯一用到逗號操作符的地方就是for循環(huán)的控制表達(dá)式。在控制表達(dá)式的初始化和進(jìn)步控制部分,可以用一系列逗號分隔的語句匕垫。
for(int i=1, j = i+10; i<5; i++, j = i * 2)
Foreach
Java SE5中引入了foreach語法,用于數(shù)組和容器虐呻, Iterable對象象泵。
float f[] = new float[10];
for(float x : f)
? ? ? ?statement
任何返回一個數(shù)組的方法都可以使用foreach
return
return關(guān)鍵字有兩方面用途:一方面指定一個方法返回什么值(除void),另一方面會導(dǎo)致當(dāng)前的方法退出斟叼,并且返回那個值偶惠。
break 和 continue
在任何迭代語句的主體部分,都可以使用break和continue犁柜。
其中break表示強(qiáng)行退出循環(huán)洲鸠,不再和執(zhí)行剩余的語句和循環(huán)。
continue則停止當(dāng)前的迭代馋缅,然后退回循環(huán)起始處扒腕,開始下一次迭代。
標(biāo)簽
goto是Java中的一個保留字萤悴,但是Java中并沒有g(shù)oto瘾腰。
取而代之的是標(biāo)簽。
label1: ? ?//can not have statement here
outer-iteration{
? ? ? ? inner-iteration{
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? ? ? continue label1;
? ? ? ? ? ? ? ? break label1;
? ? ? ? ?}
}
這里的label1是一個標(biāo)簽覆履,continue label1 和 break label1 會對外部的循環(huán)造成影響蹋盆,因?yàn)閘abel1定義在外部循環(huán)。
switch
switch(integral-selector){
case integral-value1:statement; ?break;
case integral-value2:statement;? break;
case integral-value3:statement;? break;\
// ....
default:statement;
}
switch語句遇到break就會跳轉(zhuǎn)到switch主體的末尾硝全,若省略break則會執(zhí)行后面的case語句栖雾,知道遇到第一個break為止。
switch中的值必須是int或者char這樣的整數(shù)值伟众。
case語句能夠堆疊在一起析藕,為一段代碼行成多重匹配,即只要符合多種條件中的一種凳厢,就執(zhí)行那段特別的代碼账胧。