如何确保输入是Java上带有hasNextInt的整数
新来的程序员。这可能是一个非常基本的问题,但它仍然困扰着我。 当我尝试在Eclipse上运行此代码时,什么都没有发生。我在检查闰年。输入必须是整数,如果不是,我希望继续重复循环(我试图通过如何确保输入是Java上带有hasNextInt的整数,java,input,Java,Input,新来的程序员。这可能是一个非常基本的问题,但它仍然困扰着我。 当我尝试在Eclipse上运行此代码时,什么都没有发生。我在检查闰年。输入必须是整数,如果不是,我希望继续重复循环(我试图通过input.hasNextIntpart实现这一点)。但是,当我尝试运行它时,没有任何弹出窗口,控制台仍然是空的 有人知道这里出了什么问题吗 import java.util.Scanner; public class Leapyear { public static void main(Strin
input.hasNextInt
part实现这一点)。但是,当我尝试运行它时,没有任何弹出窗口,控制台仍然是空的
有人知道这里出了什么问题吗
import java.util.Scanner;
public class Leapyear {
public static void main(String[] args)
{
int year;
Scanner input = new Scanner(System.in);
while (!input.hasNextInt()) {
System.out.println("Enter a year in numbers:");
input.next();
}
year = input.nextInt();
System.out.println("Enter a year:");
input.close();
boolean is_leap = false;
if (year % 4 == 0)
{
if (year % 100 == 0)
{
if (year % 400 == 0)
is_leap = true;
else
is_leap = false;
}
else
is_leap = true;
}
else
is_leap = false;
if(is_leap)
System.out.println(year + " is a leap year!");
else
System.out.println(year + " is not leap year!");
}
}
实际上,您需要打印一次消息才能在控制台中看到它,否则,消息将仅在执行while循环时显示
public static void main(String[] args) {
int year;
System.out.println("Enter a year in numbers:");
Scanner input = new Scanner(System.in);
while (!input.hasNextInt()) {
System.out.println("Enter a year in numbers:");
input.next();
}
year = input.nextInt();
//System.out.println("Enter a year:");
input.close();
boolean is_leap = false;
if (year % 4 == 0)
{
if (year % 100 == 0)
{
if (year % 400 == 0)
is_leap = true;
else
is_leap = false;
}
else
is_leap = true;
}
else
is_leap = false;
if(is_leap)
System.out.println(year + " is a leap year!");
else
System.out.println(year + " is not leap year!");
}
hasnetint
是一个阻塞调用,正在等待用户输入。不,它不是…year=input.nextInt()代码>需要在调用下一个int之前写入。只需在while循环之前打印一些内容。