While loop 整数和布尔不兼容类型
这个程序说第一个有效输入是无效的,不管发生什么,然后第二个输入是有效的,不管发生什么。知道为什么吗While loop 整数和布尔不兼容类型,while-loop,integer,boolean,While Loop,Integer,Boolean,这个程序说第一个有效输入是无效的,不管发生什么,然后第二个输入是有效的,不管发生什么。知道为什么吗 public class test { public static void main (String [] args) { int gradeValidity, verifiedGrade, grade, validGrade; grade=gradeValidity (); S
public class test
{
public static void main (String [] args)
{
int gradeValidity, verifiedGrade, grade, validGrade;
grade=gradeValidity ();
System.out.println("your total grade is"+grade);
System.exit(0);
}
private static int gradeValidity ()
{
int gradeOne;
boolean verifiedGrade ;
gradeOne=ConsoleInput.readInt("Input student grade");
verifiedGrade=((gradeOne>=0) && (gradeOne<=100));
do
{
System.out.println("Invalid input");
gradeOne=ConsoleInput.readInt("Input student grade");
}
while (!verifiedGrade);
return gradeOne;
}
}
公共类测试
{
公共静态void main(字符串[]args)
{
int等级有效性,验证等级,等级,有效等级;
等级=等级有效性();
System.out.println(“您的总成绩为”+成绩);
系统出口(0);
}
私有静态整数有效性()
{
国际一年级;
布尔校验级;
一年级=控制台输入.readInt(“输入学生成绩”);
验证等级=((等级一>=0)和&(等级一=0)和&(等级一0和=0)和&(等级一=0)和&(等级一=0)
应该是
while (gradeOne!=verifiedGrade)
导致此特定错误的行是
boolean verifiedGrade;
您需要将此行更改为以下内容
int verifiedGrade;
在没有任何其他错误之前,一切都会正常运行!方法等级有效性应如下所示:
private static int gradeValidity ()
{
int gradeOne;
boolean verifiedGrade;
gradeOne=ConsoleInput.readInt("Input student grade");
verifiedGrade=((gradeOne>=0) && (gradeOne<=100));
while (!verifiedGrade)
{
System.out.println("Invalid input");
gradeOne=ConsoleInput.readInt("Input student grade");
verifiedGrade=((gradeOne>=0) && (gradeOne<=100));
}
return gradeOne;
}
private static int gradeValidity()
{
国际一年级;
布尔校验级;
一年级=控制台输入.readInt(“输入学生成绩”);
verifiedGrade=((gradeOne>=0)&&&(gradeOne=0)&&&(gradeOne=0)&&&(gradeOne=0)&&&(gradeOne)当我运行时,第一个条目的任何输入都是假的,第二个条目的任何输入都是真的。你知道为什么吗?你使用的是非标准类控制台输入,其中可能有bug。我的错,我有一个“;”after”while(!verifiedGrade)感谢您的帮助您好,看起来您对StackOverflow还不熟悉--欢迎!请注意:虽然很容易猜测您可能正在使用Java,但一般来说,您应该提及您在这类问题中使用的语言。
boolean verifiedGrade;
int verifiedGrade;
private static int gradeValidity ()
{
int gradeOne;
boolean verifiedGrade;
gradeOne=ConsoleInput.readInt("Input student grade");
verifiedGrade=((gradeOne>=0) && (gradeOne<=100));
while (!verifiedGrade)
{
System.out.println("Invalid input");
gradeOne=ConsoleInput.readInt("Input student grade");
verifiedGrade=((gradeOne>=0) && (gradeOne<=100));
}
return gradeOne;
}
private static int gradeValidity () throws java.io.IOException
{
int gradeOne;
boolean verifiedGrade;
BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Input student grade");
gradeOne=Integer.parseInt(bufferRead.readLine());
verifiedGrade=((gradeOne>=0) && (gradeOne<=100));
while (!verifiedGrade)
{
System.out.println("Invalid input");
System.out.println("Input student grade");
gradeOne=Integer.parseInt(bufferRead.readLine());
verifiedGrade=((gradeOne>=0) && (gradeOne<=100));
}
return gradeOne;
}