switch(ch+1)是不是写错了?是不是应该是switch((char)(ch+1))?

switch(ch+1)是不是写错了?是不是应该是switch((char)(ch+1))?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学,你好,= 是赋值符号,赋值时,左边必须是变量,所以会报错,而switch中进行的是判断是否相等,判断是否相等用基本类型的用==号来判断

如下图所示:

http://img1.sycdn.imooc.com//climg/5df73ffb0970f36d06620334.jpg

如果同学想单独写是会报错的,需要一个变量来承接它,或者它直接被打印出来,因为他是一个布尔值,就好比我们不能在程序中只写一个true或者false一样

如图所示:

http://img1.sycdn.imooc.com//climg/5df740a109b1f0f906700408.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

好帮手慕小脸 2019-12-16 11:18:03

同学,你好,switch(ch+1)没有写错,因为ch + 1:Java底层会先使用‘8’转换对应的ASCII码十进制的值进行加法运算,‘8’对应ASCII为56,56+1会得到57对应值。然后它可以自动转换为char类型,再和case进行匹配。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 慕码人9379814 #1
    老师,意思我知道。 我给您举个例子: '9'='8'+1这个我理解 是成立的 可是char ch='8' '9'=ch+1就会报错呀 switch结构后面括号里的值不是应该和case后面的值相等才会执行的吗?'9'=ch+1都报错了 怎么会执行呢?
    2019-12-16 12:20:08
提问者 慕码人9379814 2019-12-15 22:59:51

有人能回答一下吗?


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师