Код для ввода и проверки его действительного возраста, если не повторять, пока не будет - PullRequest
1 голос
/ 23 февраля 2020

Я пытаюсь закодировать эту программу, чтобы получить ввод и проверить, является ли ее допустимый возраст от 0 до 150. Я использую do-while, но не повторяюсь, пока условие не выполнится. Я не вижу, где это идет не так. Может быть, я не правильно понимаю do-while?

import java.util.Scanner;
public class ValidAge;
{
    public static void main(String[]args)
    {
        matches();
    }

    public static void matches()
    {
        Scanner scan = new Scanner(System.in);

        do
        {
            input = scan.nextInt();
            if(input >= 0 && input <= 150)
            {
                System.out.println(input);
                System.out.println("Age is valid");
            }
            else
            {
                System.out.println(input);
                System.out.println("Age is NOT valid");
            }
        }
        while(input < 0 || input > 150);
    }
}

Ответы [ 2 ]

1 голос
/ 23 февраля 2020
import java.util.Scanner;
public class ValidAge{
    public static void main(String[]args)
    {
        matches();
    }
    public static void matches()
    {
        Scanner scan = new Scanner(System.in);
        int input = 0;
        do
        {
            input = scan.nextInt();
            if(input >= 0 && input <= 150)
            {
                System.out.println(input);
                System.out.println("Age is valid");
            }
            else
            {
                System.out.println(input);
                System.out.println("Age is NOT valid");// Change here
            }
        }
        while(input >= 0 && input <= 150);
    }
}

Разница в том, что если вы хотите проверить между 0 и 150, вы должны проверить, если оно больше 0 И если оно меньше 150. Это проверит, был ли ввод между ними. То, что вы проверяли, было ли это или, или это не правильный лог c.

0 голосов
/ 23 февраля 2020

Вы должны объявить ввод значением, прежде чем вводить 'do while'.

import java.util.Scanner;
public class ValidAge{// Change here
    public static void main(String[]args)
    {
        matches();
    }
    public static void matches()
    {
        Scanner scan = new Scanner(System.in);
        int input = 0;// Change here
        do
        {
            input = scan.nextInt();
            if(input >= 0 && input <= 150)
            {
                System.out.println(input);
                System.out.println("Age is valid");
            }
            else
            {
                System.out.println(input);
                System.out.println("Age is NOT valid");// Change here
            }
        }
        while(input > 0 && input < 150);
    }
}
...