A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Demo
{
public static void main(String[] args)
     {
         int x=4,j=0;
         swtich(x)
                case 1:              
                    j++;
                case 2:
                    j++;
                case 3:
                     j++;
                case 4:
                    j++;
                 case 5:
                   j++;
                 default:
                   j++;
     }
         System.out.println(j);
}

评分

参与人数 1黑马币 +3 收起 理由
李家汉子初养成 + 3 楼主要细心!!!

查看全部评分

19 个回复

倒序浏览
这个。。。。肯定出错啊
回复 使用道具 举报
我的switch拼错了,但是整个程序重点不是这里,而是运行原理
回复 使用道具 举报
首先呢,你的switch关键字打错了,也没带大括号。
switch根据表达式的值找到对应的case目标值,然后执行case之后的语句;本题中x=4,所以会执行case4之后的语句,由于没有break语句无法跳出switch,所以程序会执行case4之后的三次j++,结果是3。不知道对不对,看看有没有说错的地方:handshake

评分

参与人数 1黑马币 +3 收起 理由
李家汉子初养成 + 3 赞一个!

查看全部评分

回复 使用道具 举报
楼主,switch写成swtich了,而且后面缺少一个“{” 关于j的取值是3,x = 4,匹配到case 4:后执行 j++,如果没有碰到break;结束的话,程序会按顺序把剩下的语句都执行一遍。及:执行case 5: j++; default: j ++
回复 使用道具 举报
缺少break
回复 使用道具 举报
楼楼有书么》?或者毕姥爷视频
回复 使用道具 举报
因为没有break,所以匹配到case4之后会一直执行下去
回复 使用道具 举报
zmhlnrs 中级黑马 2014-12-11 20:45:17
9#
加上{}把switch改过来结果应该是3,因为没有break语句会把case 4之后的全部运行
回复 使用道具 举报
如果是看成代码都正确的话,那么运行原理是这样的。x=4,那么就去找到case 为4的那个j++(j=j+1),然后执行里面的代码。switch语句的结束是遇到break或者是大括号结束。那么case 4 这里面没有break,那么会一直向下执行,到大括号结束位置,所以最后输出k=3
回复 使用道具 举报
缺少break
回复 使用道具 举报
此题共有3处错误   1:   swtich---switch、 2:  switch(x)---switch(x){}

3:    System.out.print(j);应该放在main函数里面即第二对{}里面。
回复 使用道具 举报
慕容冰若 发表于 2014-12-11 20:39
因为没有break,所以匹配到case4之后会一直执行下去

不好意思,你的回答是错的
回复 使用道具 举报
请叫我丶菜鸟 发表于 2014-12-11 19:05
这个。。。。肯定出错啊

我想声明 缺少{}和没有break不是 这个程序的主要问题
回复 使用道具 举报
陈强fly 发表于 2014-12-11 21:26
此题共有3处错误   1:   swtich---switch、  2:  switch(x)---switch(x){}

3:    System.out.print(j);应 ...

你的回答不是这个程序的主要问题,当这些都对的时候,你能告诉我j的值吗
回复 使用道具 举报

程序不是这个原因,你的回答是错的,没有break程序也会退出
回复 使用道具 举报
lgc黑马 发表于 2014-12-11 21:40
我想声明 缺少{}和没有break不是 这个程序的主要问题

因为没有break,so程序会往下执行,结果为3
回复 使用道具 举报
ben_vs_cong 发表于 2014-12-11 20:56
如果是看成代码都正确的话,那么运行原理是这样的。x=4,那么就去找到case 为4的那个j++(j=j+1),然后执 ...

谢谢,你的回答是对的,大神,Thank You!
回复 使用道具 举报
lgc黑马 发表于 2014-12-11 21:40
我想声明 缺少{}和没有break不是 这个程序的主要问题

因为没有break,so程序会往下执行,结果为3
回复 使用道具 举报
j=3 没有break 一直执行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马