注册
 找回密码
 注册
江西广告网
查看: 246|回复: 0
打印 上一主题 下一主题

Java中的流程控制

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2009-2-17 10:58:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
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]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表