使用 else if 扫描仪输入的年龄比较

问题描述 投票:0回答:3

我现在刚刚在大学学习编码。我们的任务是根据扫描仪创建一个 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
选项。

java if-statement java.util.scanner
3个回答
2
投票

问题在粗线下方。

if 块后面的分号导致了这种情况。

删除分号。

否则如果(年龄 >= 60);

这使得 if 语句与打印行语句分开。这就是为什么无论输入是什么,打印行都会执行。


1
投票

如果您必须在此语句中执行多个代码,则在

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!");
    }

-1
投票

年龄;

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
© www.soinside.com 2019 - 2024. All rights reserved.