Java当中涉及的常见流程控制语句包括if-else(其中else可选), while, do-while, for, return, break, switch.
True和False
Java不允许将一个数字作为布尔值利用,例如 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的唯一区别就是do-while中的语句会至少执行一次。
for
for(initialization;Boolean-expression;step)
statement
每次迭代前都会测试条件是否满足,每次循环结束会进行一次step。
Java中唯一用到逗号操作符的地方就是for循环的控制表达式。在控制表达式的初始化和进步控制部分,可以用一系列逗号分隔的语句。
for(int i=1, j = i+10; i<5; i++, j = i * 2)
Foreach
Java SE5中引入了foreach语法,用于数组和容器, Iterable对象。
float f[] = new float[10];
for(float x : f)
statement
任何返回一个数组的方法都可以使用foreach
return
return关键字有两方面用途:一方面指定一个方法返回什么值(除void),另一方面会导致当前的方法退出,并且返回那个值。
break 和 continue
在任何迭代语句的主体部分,都可以使用break和continue。
其中break表示强行退出循环,不再和执行剩余的语句和循环。
continue则停止当前的迭代,然后退回循环起始处,开始下一次迭代。
标签
goto是Java中的一个保留字,但是Java中并没有goto。
取而代之的是标签。
label1: //can not have statement here
outer-iteration{
inner-iteration{
break;
continue;
continue label1;
break label1;
}
}
这里的label1是一个标签,continue label1 和 break label1 会对外部的循环造成影响,因为label1定义在外部循环。
switch
switch(integral-selector){
case integral-value1:statement; break;
case integral-value2:statement; break;
case integral-value3:statement; break;\
// ....
default:statement;
}
switch语句遇到break就会跳转到switch主体的末尾,若省略break则会执行后面的case语句,知道遇到第一个break为止。
switch中的值必须是int或者char这样的整数值。
case语句能够堆叠在一起,为一段代码行成多重匹配,即只要符合多种条件中的一种,就执行那段特别的代码。