私は、コース、レターグレード、およびコースクレジットの数を取り入れて合計加重を計算できるプログラムをテストするテストクラスを作成しましたポイント、トータルクレジット、および3コースを最大限に設計されたループ内のGPA。無効な応答を修正した後にスキャナが続行できないようにする
しかし、私はコースの数を検証し、無効で有効な入力が両方入力された後に実行されることを証明する必要があります。
無効な応答の後に有効なコース数を入力するように促すようになっていますが、有効な応答が入力されると、プログラムは実行されているのではなく停止します。なぜ誰かが私に言うことができますか?ここで
は私のコードです:
import java.util.*;
import java.lang.*;
public class ComputeGpa
{
public static void main(String [] args)
{
Gpa grades1 = new Gpa();
Scanner in = new Scanner (System.in);
System.out.println("Enter number of courses: ");
int courses = in.nextInt();
if(courses > 0)
{
int i = 0;
while(i < 3)
{
System.out.println("Please enter a letter grade.");
String letter = in.next();
char result = letter.charAt(0);
System.out.println("How many credits was this class worth?");
int credits = in.nextInt();
grades1.addToTotals(result, credits);
i++;
}
System.out.printf("GPA: %.2f", grades1.calcGpa());
}
else
{
System.out.println("Number of courses must be greater than 0. Please enter a valid number of courses.");
courses = in.nextInt();
}
}
}
次のようにそのための出力は次のとおりです。
Enter number of courses:
-2
Number of courses must be greater than 0. Please enter a valid number of courses.
3
し、プログラムの実行が停止します。どこが間違っていますか?私は文字列のin.next()がこの問題を修正すると思ったが、明らかに私は間違っていた。何か案は?
ループがある場所です。 –