切换声明报价

Ste*_*her 17 java switch-statement

有了Java,我正在读一本书,重新涵盖我在大学里忘记的基础知识,他们向我展示了一个像这样的swtich语句:

void helpon(int what) {
    switch(what) {
        case '1': break;
        case '2': break;
    }
}
Run Code Online (Sandbox Code Playgroud)

我省略了案例代码,因为无关紧要.

但是,使用一个int并且仍然用单引号括起case语句对我来说似乎很奇怪,所以我去了oracle文档并找到了一个与上面的例子相同的例子,但是没有引号.

对于使用整数作为案例的switch语句,引号是否重要?为什么会'1'工作,如果what是一个int并且'1'是一个炭?

Lui*_*oza 15

单引号字符是文字char,char值是int值.A char可以表示int为其UTF-16值,例如:

char c = '1';
int i = c;
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)

输出:

49
Run Code Online (Sandbox Code Playgroud)

更多信息:


不要混淆ASCII字符(单字节,0到127之间的值)和UTF-16(每个代码点2个字节,0到65535之间的值).更多信息:Unicode,UTF,ASCII,ANSI格式差异