【发布时间】:2020-07-27 10:23:39
【问题描述】:
当我运行这个程序时,它不起作用。我可以输入您的姓名、我的出生年份、当年,但在我输入当年之后,它不会显示我的年龄。你能告诉我我的代码有什么问题并解释为什么吗?好像我不明白 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();
}
}
提前致谢
【问题讨论】:
-
如果你删除了 get_input.next();打印“输入当前年份”后,您的问题应该会消失。我还会在该区域添加错误检查,因为用户可以输入无效的年份。
-
谢谢艾伯特。我做这个只是为了了解它是如何工作的。我想我真的不明白“.next();”的目的是什么。为什么没有必要?
-
从扫描器中查找下一个标记关键字。由于代码块没有发生这种情况。这是库参考:docs.oracle.com/javase/8/docs/api/java/util/Scanner.html#next--.
-
谢谢。如果您将答案作为答案发布,我将对其进行验证。
-
就这么做了。谢谢。
标签: java input int java.util.scanner