昨晚一时糊涂,在依据常量判断进行某变量赋值的时候,竟然没有想到switch语句,还傻乎乎的if,else if了一大堆,好在友人一语点醒梦中人。呵呵。但是还是发现了一个问题。不管case是何值,怎么都是执行default呢。
先看看经典著作,From 《Thinking in Java》:
switch(Integral-selector)中的Integral-selector,称整数选择因子,是一个能够产生整数值的表达式。
说白了就是整型或者单个字符(单个字符的单引号别忘了,问题就出在这了)。
再看看我的代码,判断条件就是1,2,3,4……,但是从页面读进来的是String型的,于是str.charAt(0),下面的case也就天马行空的直接写上1,2,3,4……
问题就出来了,str.charAt(0)得到的是'1','2','3','4'……啊,是字符,此1234非彼1234。苦笑……
先看看经典著作,From 《Thinking in Java》:
switch(Integral-selector)中的Integral-selector,称整数选择因子,是一个能够产生整数值的表达式。
说白了就是整型或者单个字符(单个字符的单引号别忘了,问题就出在这了)。
再看看我的代码,判断条件就是1,2,3,4……,但是从页面读进来的是String型的,于是str.charAt(0),下面的case也就天马行空的直接写上1,2,3,4……
问题就出来了,str.charAt(0)得到的是'1','2','3','4'……啊,是字符,此1234非彼1234。苦笑……
本文通过一个具体的编程实例讲述了在使用switch语句时,字符与整数的区别。作者原本期望用字符串中的字符与case后的整数比较,却忽略了字符与整数的本质不同,导致所有情况都跳转到default分支。
3565

被折叠的 条评论
为什么被折叠?



