我是java编程的新手,我很难搞清楚这一点。
这是我的代码:
boolean running = true;
PANTS:
while (running) {
int waistMeasure = in.nextInt();
if (waistMeasure >= 26 && waistMeasure < 28){
System.out.println("You are a Small.");
break;
}
if (waistMeasure >= 28 && waistMeasure < 30){
System.out.println("You are a Medium.");
break;
}
if (waistMeasure >= 30 && waistMeasure <= 34){
System.out.println("You are a Large.");
break;
}
else {
System.out.println("Invalid input");
}
}
有没有办法将其转换为switch case语句?
答案 0 :(得分:1)
是的,有 - 但你必须为每个值创建一个case
(如下所示)。您无法使用单个case
表达一系列值。因此,如果您想要可读和可维护的代码,您应该坚持使用if
s。
switch (waistMeasure) {
case 26:
case 27:
System.out.println("You are a Small.");
running = false;
break;
case 28:
case 29:
// ....
}
答案 1 :(得分:0)
switch (waistMeasure) {
case 26:
case 27:
System.out.println("You are a Small.");
break PANTS;
case 28:
case 29:
System.out.println("You are a Medium.");
break PANTS;
case 30:
case 31:
case 32:
case 33:
case 34:
System.out.println("You are a Large.");
break PANTS;
default
System.out.println("Invalid input");
}
答案 2 :(得分:-1)
你的意思是这样吗?
请注意,您必须使用PANTS
语句的break
标签退出循环,否则它们只会从switch
中断并继续循环。
PANTS: for (;;) {
int waistMeasure = in.nextInt();
switch (waistMeasure) {
case 26:
case 27:
System.out.println("You are a Small.");
break PANTS;
case 28:
case 29:
System.out.println("You are a Medium.");
break PANTS;
case 30:
case 31:
case 32:
case 33:
case 34:
System.out.println("You are a Large.");
break PANTS;
default:
System.out.println("Invalid input");
}
}