このプログラムは、最初の有効な入力が何があっても無効であり、次に 2 番目の入力が何があっても有効であることを示しています。理由はありますか?
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;
}
}
これに更新しました。しかし、今では比類のない(ブール値と整数)ことができます
import io.*;
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));
while (gradeOne!=verifiedGrade);
{
System.out.println("Invalid input");
gradeOne=ConsoleInput.readInt("Input student grade");
}
return gradeOne;
}
}
これでもまだエラーが発生します。最初の入力は常に false で、2 番目の入力は常に true で、>0 と <100 に関係ありません。
import io.*;
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));
while (!verifiedGrade);
{
System.out.println("Invalid input");
gradeOne=ConsoleInput.readInt("Input student grade");
verifiedGrade=((gradeOne>=0) && (gradeOne<=100));
}
return gradeOne;
}
}