Чтение входного целого числа в Java - PullRequest
1 голос
/ 14 апреля 2020

Когда я запускаю эту программу, она не работает. Я могу ввести ваше имя, год моего рождения, текущий год, но после ввода текущего года мой возраст не отображается. Не могли бы вы сказать мне, что не так в моем коде и объяснить, почему? Кажется, я не понял, как работает ввод в Java.

package com.company;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner get_input = new Scanner(System.in);
        System.out.println("Enter your name ");
        String name = get_input.nextLine();


        boolean is_int = false;
        int year_of_birth = 0;
        System.out.println("Enter your year of birth");
        while (!get_input.hasNextInt()) {

            System.out.println("Year invalid");
            System.out.println("Enter your year of birth");
            get_input.next();
        }
        year_of_birth = get_input.nextInt();

        System.out.println("Enter the current year");
        get_input.next();
        int current_year=get_input.nextInt();

        int age = current_year-year_of_birth;

        System.out.println(current_year);
        System.out.println(year_of_birth);
        System.out.println("Your name is " + name + " and you are " + age + " year old.");

        get_input.close();

    }
}

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Если вы удалите get_input.next (); после печати «Введите текущий год» ваша проблема должна исчезнуть go. Я также добавил бы проверку ошибок в этой области, потому что пользователь может ввести неверный год.

0 голосов
/ 14 апреля 2020

просто удалите строку get_input.next();, которая идет после того, как вы напечатаете System.out.println("Enter the current year"); и код должен работать.

...