Java中的流程控制
1.break和continuebreak用于强行推出循环,不执行循环中剩余的语句。continue用于停止执行当前的迭代,然后退回循环起始处,开始下一次迭代。看下面的代码:
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.println(i);
}
int i=0;
//An \"infinite loop\":
while(true){
i;
int j=i*27;//40*27=1080,50*27=1350
if(j==1269)break;//out of loop
if(i!=0)continue;//Top of loop
System.out.println(i);
}
}
}
结果:
0
9
18
27
36
45
54
63
72
10
20
30
40
2.标签在for循环中的使用
看下面的代码:
public class LabeledFor {
public static void main(String[] args) {
int i = 0;
outer: for (; true;) {// infinite loop
inner: for (; i < 10; i) {
System.out.println(\"i=\" i);
if (i == 2) {
System.out.println(\"continue\");
continue;
}
if (i == 3) {
System.out.println(\"break\");
i;// Otherwise i never gets incremented.
break;
}
if (i == 7) {
System.out.println(\"continue outer\");
i;// Otherwise i never gets incremented.
continue outer;
}
if (i == 8) {
System.out.println(\"break outer\");
break outer;
}
for (int k = 0; k < 5; k) {
if (k == 3) {
System.out.println(\"continue inner\");
continue inner;
集整理 发布日期:2007-10-30
}
}
}
}
}
}
结果:
i=0
continue inner
i=1
continue inner
i=2
continue
i=3
break
i=4
continue inner
i=5
continue inner
i=6
continue inner
i=7
continue outer
i=8
break outer
注意,break会中断for循环,而且在抵达for循环的末尾之前,递增表达式不会执行。由于break跳过了递增表达式,所以在i==3的情况下直接对i执行递增运算。在i==7的情况下,continue outer语句会跳到循环顶部,而且也会跳过递增,所以这里也对i直接递增。
如果没有break outer语句,就没有办法从内部循环里挑出外部循环。这是由于break本身只能中断最内层的循环(continue也是如此)。
当然,如果想在中断循环的同时退出方法,简单地用一个return即可。
3.标签在while循环中的使用
看下面的代码:
public class LabeledWhile {
public static void main(String[] args) {
int i = 0;
outer: while (true) {
System.out.println(\"Outer while loop\");
while (true) {
i;
System.out.println(\"i=\" i);
if (i == 1) {
System.out.println(\"continue\");
continue;
}
if (i == 3) {
System.out.println(\"continue outer\");
continue outer;
}
if (i == 5) {
System.out.println(\"break\");
break;
}
if (i == 7) {
System.out.println(\"break outer\");
break outer;
}
}
}
}
}
结果:
Outer while loop
i=1
continue
i=2
i=3
continue outer
Outer while loop
i=4
i=5
break
Outer while loop
i=6
i=7
break outer
注:Java中需要使用标签的唯一理由就是因为有循环嵌套,而且你想从多层嵌套中break或continue。
4.switch
switch语句要求使用一个选择因子,并且必须是int或char那样的整数值。例如,假如一个字符串或浮点数作为选择因子,那么它们在switch语句里不会工作。看下面的代码:
public class VowelsAndConsonants {
public static void main(String[] args) {
for (int i = 0; i < 100; i) {
char c = (char) (Math.random() * 26 ’a’);
System.out.println(c \":\");
switch (c) {
上一页
case ’a’:
case ’e’:
case ’i’:
case ’o’:
case ’u’:
System.out.println(\"vowel\");
break;
case ’y’:
case ’w’:
System.out.println(\"Sometimes a vowel\");
break;
default:
System.out.println(\"consonant\");
}
}
}
}
①Math.random()范围为[0,1)
②char c=(char)(Math.random()*26 ’a’);
Math.random()会产生一个double值,所以26会转换成double类型,以便执行乘法运算。这个运算也会产生一个double值。这意味着为了执行加法,必须将’a’转换成double。最后使用显示的类型转换将double结果转回char。
③将一个float或double值转型成整数后,总是将小数部分“砍掉”。 上一页
页:
[1]