私はこの問題を解決するために奇妙なバグを抱えているようです... .nextLine();を使用して文字列を格納しようとしています。新しい行が作成され、2行目が保存されます。スキャナが正しく文字列を読み取っていない
マイコード: パブリッククラス平均値{
public static void main (String args[]) {
String studentName = "";
int score1, score2, score3;
float Average = 0f;
int numberTests = 0;
Scanner scr = new Scanner(System.in);
System.out.println("Enter students name");
if(scr.nextLine().equalsIgnoreCase("quit")) {
System.exit(0);
} else {
studentName = scr.next();
}
System.out.println("Enter the amount of tests");
numberTests = scr.nextInt();
System.out.println("Enter students scores");
score1 = scr.nextInt();
score2 = scr.nextInt();
score3 = scr.nextInt();
Average = (score1 + score2 + score3)/numberTests;
System.out.print(studentName + " " + Average);
}}
エラーが保存されていない最初の入力であるが、別の行に移動し、その代わりに保存されます。走っされた場合、これは出力されます。
は、学生を入力し
がテスト
の量を入力し
オーバーフローが
学生のスコアを入力し
スタックに名前を付けます1
私は数学が間違っている理解が、私は誰もが私が間違ってやっているものを私に伝えることができる場合、私は大いにだろう最初の名前の部分を把握する必要がありオーバーフロー2.0
感謝します。
(http://stackoverflow.com/questions/13102045/scanner-is-skipping [スキャナ)は(次、nextInt()または他のnextFoo()メソッドを使用した後nextLine()はスキップされる]を見てください-nextline-after-using-next-nextint-other-nextfoo) –
私はそれを読んだが、理解しているが、nextIntを最初にキャプチャしていないので、 –