江西广告网

标题: Java中的流程控制 [打印本页]

作者: 悠悠女儿香    时间: 2009-2-17 10:58
标题: Java中的流程控制
1.break和continue break用于强行推出循环,不执行循环中剩余的语句。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; } [Page] 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; [1] [2] [3] 集整理 发布日期:2007-10-30 } } [Page] } } } } 结果: 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) { [Page] 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) { 上一页 [1] [2] [3] case ’a’: case ’e’: case ’i’: case ’o’: case ’u’: System.out.println(\"vowel\"); [Page] 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] [2] [3]




欢迎光临 江西广告网 (http://bbs.jxadw.com/) Powered by Discuz! X3.2