Java 的控制语句设计的关键字有 if-else while do-while for return break 和 switch。
Java 虽然保留 goto 关键字,但不支持 goto 语句。
所有条件语句都利用条件表达式的真或假来决定执行路径。
Java 不允许使用数字作为布尔值使用。
如果想在布尔测试中使用一个非布尔值,如 if(a),那么首先必须使用一个条件表达式将其转换成布尔值,如 if(a!=0)。
else 是可选的。
格式:
- if (Boolean - expression) statement或
- if (Boolean - expression) //Boolean-expression为真,执行statement1,否则执行statement2
- statement1
- else statement2
- //当然也可以嵌套
- if (Boolean - expression1)statement1
- else if (Boolean - expression2)statement2
- elsestatement3
注意,上面的 Boolean-expression 必须产生一个布尔结果。
1)while
- while (Boolean - expression) //Boolean-expression为真,执行statement
- statement
2)do-while
- do statement
- while (Boolean - expression) //Boolean-expression为真,执行statement
与 while 唯一区别在于 do-while 中的语句至少会执行一次。
3)for
- for (initialization; Boolean - expression; step) statement
for 语句中,先执行 initialization 语句,然后判断 Boolean-expression 结果是否为 true,为真则执行 statement,接下来会执行 step,再次对 Boolean-expression 结果进行判断,如此循环,直到 Boolean-expression 结果为 false。
for 中的 initialization 和 step 可以是逗号表达式,这也是 Java 唯一用到逗号操作符的地方。此外,在 initialization 部分可以对多个同类型的变量进行定义。
foreach 可以让我们在不必创建 int 变量来对访问项构成的序列进行计数,它可以自动产生这一项。如下例:
- 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);
- }
- }
结果如下,for(float x:f) 定义了一个 float 类型的变量 x,并将数组 f 的每个元素一次赋给 x。
任何返回一个数组的方法都可以使用 foreach。
return 关键词有两个作用:
a. 指定一个方法返回什么值;
b. 导致当前方法退出,并返回那个值。
break:强制退出循环,不执行循环中剩余的语句。
continue:停止执行当前的迭代,然后退回循环其实处,开始下一次循环。
Java 没有 goto,但具有类似 goto 的功能,因为都使用 "标签" 机制。
标签格式为 label:
Java 中,标签起作用的唯一地方刚好是迭代语句之前。而在迭代之前设置标签的唯一理由是我们希望在其中嵌套另一个迭代或一个开关。
break 和 continue 关键词通常只中断当前循环,但和标签一起使用,会中断循环,跳转到标签所在位置。
我们举例说明 break-label 和 continue-label 的区别,为了说明问题,我故意写了一个死循环。如下:
上图程序的输出说明带标签的 continue 会跳转到标签的位置,并重新进入紧接着标签后的循环。
从输出的 i 值也可以看出,i 会再次从 0 开始,说明重新进入了 for 循环。
下图是 break-label 的表现:
程序的输出说明带标签的 break 会中断并跳出标签所指的循环。
根据整数表达式的值,switch 语句可以从一系列代码中选出一段去执行,属于多路选择。
格式:
- switch (integral - selector) {
- case integral - vallue1: statement;
- break;
- case integral - vallue2: statement;
- break;
- case integral - vallue3: statement;
- break;
- //...
- default:
- statement;
- }
switch 会执行 case 后的 integral-value 与 integral-selector 相等的 statement。
default 在所有 integral-value 与 integral-selector 都不等的情况下执行。
integral-selector 必须为 int 或 char 类型类似的整数值,如果为字符串或者浮点数则 switch 不工作。
来源: http://www.cnblogs.com/songwenlong/p/6124171.html