在这种情况下,为什么当我对 switch 表达式和 case 值使用不同的数据类型时没有编译错误
public class Conditionsif {
public static void main(String[] args) {
// TODO Auto-generated method stub
int day=1;
switch(day){
case '1':
System.out.println("Monday");
break;
}
}
}
尽管开关表达式是整数数据类型,并且案例值是字符,但上面没有编译错误
public class Conditionsif {
public static void main(String[] args) {
// TODO Auto-generated method stub
int day=1;
switch(day){
case '1':
System.out.println("Monday");
break;
}
}
}
There is no compilation error in above though switch expression is integer data type and case value is character
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是因为隐式转换
a 的 ascii 值为 97
Its because of implicit casting
ascii value of a is 97
当您使用“”时,这意味着您使用 char 数据类型。
炭数据类型仅接受一个字符,
例如 :
char x ='h';
并接受该字符的ASCII代码
例如 :
char x = 104;
因此,案例“ 1”平均比较变量日,值等于值1。
如果修改代码如下,则该代码将打印Monaday。
此致。
When you use ' ', this means you use char data type.
char data type accept one character only ,
for example :
char x = 'h';
And also accept the Ascii code for the character
for example :
char x = 104;
So case '1' mean compare variable day with value equal to value 1.
if you modify code as following , this code will print Monaday.
Best Regards.