这是我的代码。我不明白我搞砸了什么。 它说年龄是一个 boolean 值而不是一个整数,我不知道为什么。
import java.util.Scanner;
public class F_DoIRemember {
public static void main(String args[]){
int age;
Scanner inp = new Scanner(System.in);
System.out.println("What is your age?");
age = inp.nextInt();
switch(age){
case(age<5):
System.out.println("Are you learning how to tie your shoes?");
case(age==5):
System.out.println("You know how to tie your shoes!");
case(age>5):
System.out.println("YOU BETTER KNOW HOW TO TIE YOUR SHOES!");
}
}
}
最佳答案
switch(age){
将检查年龄
的值。由于 age
的数据类型是 int,因此它总是需要您提供一个 int
值来再次检查。但是您提供的是 bool 值,(age > 5)
将生成 bool
值。
情况
中不允许有条件。
要么将age
更改为bool(从用户其他地方获取输入),要么将其用作
case 5:
System.out.println("Are you learning how to tie your shoes?");
break;
您可以在其他地方使用此条件,但不能在 case
标签中使用。
由于您使用的是动态值,
age = inp.nextInt();
这不会总是相同的,请使用
if(age > 5) {
// code
} else if(age ==5) {
// code
} else { // don't need to use (age < 5)
// code
}
我认为,您确实需要使用这个而不是switch
。
关于java - 初学者java, "Required: int. Found: Boolean"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24343105/