for 循环 结合 switch语句的使用(java)

[复制链接]
查看11 | 回复3 | 2007-11-15 15:53:34 | 显示全部楼层 |阅读模式
没有运行就没有发言权,我运行了,是7 13 15你应该在没句case 2:w+=1; 后面加 break;这样就跳到下面去了,如果没有他,就继续执行下面的语句比如case 3:w+=1; case 0:w+=1; 如果你给的3 W先是1 执行完后,没有BREAK;就继续执行下面的,W=2;依次类推
回复

使用道具 举报

千问 | 2007-11-15 15:53:34 | 显示全部楼层
这是switch语句的一种特性,case语句中如果没有加入break的话会继续执行的,会把下面的所有的case的语句执行完,然后离开switch.除非中间出现break,他会跳出switch,然后执行switch后面的程序。你这段程序的执行顺序是:执行case 0执行case 0中的w += 1;(由于没有break,所以会继续执行下面的case语句)执行case 1;执行case 1中的w += 1;执行continue;(此处出现continue,所以不会执行后面的case语句)执行case 1;执行case 1中的w += 1;执行continue;;(此处出现continue,所以不会执行后面的case语句)执行case 2执行case 2中w += 1;执行case 4执行case 4中w += 1;执行case default执行case default中w += 2;(到此处switch执行完)执行System.out.println(w is:7)执行case 3执行case 3中w += 1;执行case 0执行case 0中w += 1;执行case 1;执行case 1中w += 1;执行continue;执行case 4执行case 4中w += 1;执行case default执行case default中w += 2;(到此处switch执行完)执行System.out.println(w is:13)执行case default执行case default中w += 2;执行System.out.println(w is:15)for循环执行完毕,整个程序执行完
回复

使用道具 举报

千问 | 2007-11-15 15:53:34 | 显示全部楼层
输出结果没有错加了测试代码和注释,这样思路就清晰多了package testcode;public class Switchtest { int i = 0, w = 0;//实例变量,作用于整个类 public Switchtest() {//这个为构造函数,创建对象时就自动执行里面的代码for (; i <= 5; i++) {//初始条件永远为true switch (i)//把循环后的i作为switch参数,关键在与switch没有break语句,用continue跳转 { case 3://如果i为3 w 加1,如果匹配到一个以后由于没有break下面的就不再匹配按顺序执行了,以下同样的说明省略
w += 1;
System.out.println("i = "+i+" case 3=" + w); case 0://如果i为0 w 加1
w += 1;
System.out.println("i = "+i+" case 0=" + w); case 1://如果i为1 w 加1,并跳出到上级循环,即跳到for外面:
w += 1;
System.out.println("i = "+i+" case 1=" + w);
continue; case 2://如果i为2 w 加1
w += 1;
System.out.println("i = "+i+" case 2=" + w); case 4://如果i为4 w 加1
w += 1;
System.out.println("i = "+i+" case 4=" + w); default://其他情况 w 加2
w += 2; System.out.println("i = "+i+" case default=" + w); } System.out.println("i = "+i+" " + w);//输出w的值} } public static void main(String[] args) {Switchtest stest = new Switchtest();//创建一个Switchtest对象 }}---------------------输出结果为:i = 0 case 0=1i = 0 case 1=2i = 1 case 1=3i = 2 case 2=4i = 2 case 4=5i = 2 case default=7i = 2 7i = 3 case 3=8i = 3 case 0=9i = 3 case 1=10i = 4 case 4=11i = 4 case default=13i = 4 13i = 5 case default=15i = 5 15参考资料:自己本回答被提问者和网友采纳
回复

使用道具 举报

千问 | 2007-11-15 15:53:34 | 显示全部楼层
你的输出结果有误吧.怎么只有三个数值.应该还少三个数.如果是你的现在输入在网上的这个程序我认为你的结果应该为:61115222527.不知道你是怎么运行的.怎么会只有三个结果.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行