【发布时间】:2014-10-02 03:57:25
【问题描述】:
使用 Java,我正在阅读一本书以重新复习我在大学时忘记的基础知识,它们向我展示了这样一个 swtich 声明:
void helpon(int what) {
switch(what) {
case '1': break;
case '2': break;
}
}
我省略了案例代码,因为不相关。
但是,我觉得使用 int 并且仍然将 case 语句用单引号括起来很奇怪,所以我去了 oracle docs 并找到了一个与上面的示例相同的示例,但没有引号。
对于使用整数作为 case 的 switch 语句,引号是否重要?如果what 是int 而'1' 是字符,为什么'1' 会起作用?
【问题讨论】:
-
其实是
char。 -
啊,当然抱歉。我已经习惯了 javascript 这些变量类型不熟悉!
-
'1'和1是不同的。1是一个整数,而'1'是一个char,可以转换为int。但是对它进行类型转换不会产生您想到的值:字符'1'实际上是整数49(字符1的ascii代码) -
@BackSlash 与该逻辑,如果
what== 1 并且 case 显然是 49,单引号 switch 案例如何运行? -
@SterlingArcher 简单:它无法运行 :)
标签: java switch-statement