質問をする際の推奨事項ではこれを禁止していませんが、特定の質問をしてルールに違反した場合は、教えてください。Java配列は、一致するものが見つかると終了を比較しませんか?
私はユーザー入力を以前のユーザー入力(1-9)と比較し、繰り返しを確認しようとしています。しかし、私のプログラムは繰り返しに遭遇しても止まらないでしょう。何が間違っているのですか?
import java.util.Scanner;
public class No_Duplicates {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
boolean repeat = false;
do {
int[] array = new int[9];
for(int i = 1; i <= 9; i++)
{
System.out.println("Enter a number 1 - 9");
int num = scan.nextInt();
array[i] = num;
for(int j = 1; j <= i; j++)
{
if(num==array[j])
repeat = true;
}
}
}while(!(repeat == true));
System.out.println("No Duplicates Allowed!");
}
}
'while'ループは、あなたがtrueに' repeat'を設定したときにループを停止しますが、それが終了されるまで 'for'ループがない限り、続けていくだろうあなたは 'break'を追加します。 – khelwood
btwの場合は、最後の反復でArrayIndexOutOfBoundsExceptionを取得します。あなたは 'int [] array = new int [10];'を実行するか、またはインデックス0から始まってそこからインクリメントする配列に値を入力することができます – ControlAltDel
ところで 'while(!(repeat == true))' while(!repeat) 'と書かれています。 – khelwood