java switch语句

程序如图,这个运行之后会这样报错如图把第4行程序修改如下:finalstaticinty=1;不报错了,但是运行结果如下:2个问题:1.报错原因。为什么y的那行不是常量表... 程序如图,这个运行之后会这样报错如图把第4行程序修改如下:final static int y=1;不报错了,但是运行结果如下:2个问题:1.报错原因。为什么y的那行不是常量表达式x的就没问题?2.修改后的结果是怎么来的。我认为答案应该是:0 1 2;这个结果确实没看明白怎么回事,望大神解答,谢谢! 展开
 我来答
百度网友428ddb9
2019-03-21 · TA获得超过203个赞
知道小有建树答主
回答量:112
采纳率:90%
帮助的人:42.6万
展开全部

你的第一个问题:switch语句中的case必须是常量,也就是不能更改的值。在Java中常量需要用final修饰,而没有final修饰的是变量。switch语句本身的选择原理就是当某个变量为某个值时执行某段代码,所以case后面肯定是常量,而不能是变量。

第二个问题:每一段case执行的代码最后必须接一个break来结束选择分支,否则,会自动执行下一个case代码,你这里的代码就必须是:

switch (k) {
            case x:
                System.out.println("0");
                break;
            case Y:
                System.out.println("1");
                break;
            case Y + 1:
                System.out.println("2");
                break;
            }
匿名用户

2019-03-21
展开全部
要常量表达式呀,你的x有finall定义的是常量,y就不是了,你得去看下有关的定义了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式