JAVA - Сравнение возраста из входных данных сканера с использованием else if - PullRequest
0 голосов
/ 18 января 2019

Я только учусь программировать в университете. Перед нами была поставлена ​​задача создать программу 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 каждый раз, когда вы вводите возраст.

Ответы [ 2 ]

0 голосов
/ 18 января 2019

После 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!");
    }
0 голосов
/ 18 января 2019

Проблема ниже жирной линии.

Точка с запятой после блока if вызывает это.

удалить точку с запятой.

иначе, если (возраст> = 60);

это делает оператор if отдельно от оператора print line. вот почему строка печати выполняется независимо от того, что является вводом.

...