我现在刚刚在大学学习编码。我们的任务是根据扫描仪创建一个 else if 程序,该扫描仪将用户年龄作为输入。我遇到了一个问题,无论输入如何,都只显示一个输出。有人可以帮忙吗?
import java.util.Scanner;
public class HelloWorldApp {
static public void main(String[] args) {
Scanner input = new Scanner(System.in);
int age;
System.out.println("Enter your age");
age = input.nextInt();
if (age <= 18) {
System.out.println("You are a child!");
}
else if (age < 59 && age > 19) {
System.out.println("You are an adult!");
}
else if (age >= 60); {
System.out.println("You are old!");
}
}
}
这似乎每次输入年龄时都会打印出
You are old
选项。
问题在粗线下方。
if 块后面的分号导致了这种情况。
删除分号。
否则如果(年龄 >= 60);
这使得 if 语句与打印行语句分开。这就是为什么无论输入是什么,打印行都会执行。
如果您必须在此语句中执行多个代码,则在
else
或 else if
或 if
之后,请勿放置 semicolon
,因此删除 semicolon
并保留 brackets
将解决您的问题。
所以你的代码将是:
int age;
System.out.println("Enter your age");
age = in.nextInt();
if (age <= 18) {
System.out.println("You are a child!");
}
else if (age < 59 && age > 19) {
System.out.println("You are an adult!");
}
else if (age >= 60) {
System.out.println("You are old!");
}
年龄;
System.out.println("Enter your age");
age = in.nextInt();
if (age <= 18) {
System.out.println("You are a child!");
}
else if (age < 59 && age > 19) {
System.out.println("You are an adult!");
}
else if (age >= 60) {
System.out.println("You are old!");
}strong text