字节范围是-128到127.但是在下面的代码中,它超出了字节范围,代码的输出是"谢谢".
class Solve {
public static void main(String args[]) {
byte by=10;
switch(by+118) {//here it go beyond the byte range.
default:System.out.println("Sunday");
case 0:System.out.println("Monday");
case 128:System.out.println("Thank u");
}
}
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,118(称为文字)是一个int.
将118(这是一个int)添加到字节时,结果存储在int中.这意味着你的switch语句包含一个int.
所有其他文字(0和128)也是整数.
请注意,如果您确实将结果保存在字节变量中,您将遇到溢出,并且值将会回滚.尝试使用此代码,该代码已被清理以包含必要的break语句:
public class Test{
public static void main(String args[]){
byte by=10;
byte result = (byte) (by + 118);
System.out.println("Result: " + result);
switch(result){
default:
System.out.println("default");
break;
case 0:
System.out.println("0");
break;
case -128:
System.out.println("-128");
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)