因此,我自己的有效日期仅为1520年至3999年,我是这个网站的新手,也是我对java的新手 请帮忙 我想知道我在这段代码中做错了什么或做了什么。
int x;
Scanner in = new Scanner (System.in);
do
{
System.out.print ("Enter a date ");
x = in.nextInt();
}
while (x<1520&&x>3999);
{
System.out.println ("Invalid Gregorian Calendar date.");
System.out.print ("Please Input a valid Gregorian Calendar date: ");
}
}}
答案 0 :(得分:0)
在while循环中,每当输入无效时获取另一个整数。此外,您需要在while条件中将&&
更改为||
,因为没有数字小于1520且大于3999.您也不需要do
部分,而您需要在while循环后删除分号 - 它阻止循环为你做任何有效的事情。
int x;
Scanner in = new Scanner (System.in);
System.out.print ("Enter a date ");
x = in.nextInt();
while (x<1520 || x>3999) // change this to "or", i.e. && --> ||
{
System.out.println ("Invalid Gregorian Calendar date.");
System.out.print ("Please Input a valid Gregorian Calendar date: ");
x = in.nextInt(); // get another number before checking conditions again
}
答案 1 :(得分:0)
您需要在while循环中询问用户,直到他输入正确的日期。
int x;
Scanner in = new Scanner (System.in);
System.out.print ("Enter a date ");
x = in.nextInt();
while (x<1520||x>3999)
{
System.out.println ("Invalid Gregorian Calendar date.");
System.out.print ("Please Input a valid Gregorian Calendar date: ");
x = in.nextInt();
}
}}
答案 2 :(得分:0)
&&
运算符是逻辑AND
输入值不能小于1520且大于3999。
我想你想检查x
是否小于1520或大于3999。
要实现此目的,您应该使用正确的逻辑运算符,在这种情况下它是OR
x<1520 || x>3999
答案 3 :(得分:0)
您可以按照以下方式更改代码(注意,我将&amp;&amp;&amp;更改为||,因为没有数字大于3999且小于1520.)
int x;
Scanner in = new Scanner (System.in);
System.out.print("Enter a date ");
x = in.nextInt();
while (x < 1520 || x > 3999)
{
System.out.println ("Invalid Gregorian Calendar date.");
System.out.print ("Please Input a valid Gregorian Calendar date: ");
x = in.nextInt();
}
}