javaプログラミングについて
ただいまjavaプログラム勉強中でhit&blowを制作しております。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Random rand = new Random();
int[] answer = new int[4];
int[] input = new int[4];
int[] Number = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, };
int x = 10;
for (int i = 0; i < 4; i++) {
int select = (int) (Math.random() * x);
answer[i] = Number[select];
Number[select] = Number[x - 1];
x--;
}
int count = 1;
while (true) {
System.out.println("4桁の異なる数値を入力");
int str_input = scan.nextInt();
// 代入
for (int i = 0; i < 4; i++) {
input[i] = str_input;
}
// hit
int hit = 0;
for (int i = 0; i < 4; i++) {
if (input[i] == answer[i]) {
hit++;
}
}
// blow
int blow = 0;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++){
if (i != j && input[i] == answer[j]) {
blow++;
}
}
}
if (hit == 4) {
System.out.println("4hit");
System.out.println("正解まで " + count + "回");
break;
} else {
System.out.println("Hit:" + hit + " Blow:" + (blow - hit));
count++;
}
}
}
}
数字が4桁で作っているのですが、数字や4桁以上を入力してしまった場合の表示は後にしようとして、先にhitとblowの判定を作ろうとしているのですが、上記で実行したところhitとblowの判定がされずhit:0blow:0と表示されてしまいます。解決策を教えてください。
自分で作ってみたものの、hit blowの判定方法があっているかも自信がないです。
補足
その動かし方がわかりません。 public class Variable1 { public static void main(String[] args) { int data; //(1) 変数の宣言 data = 5; //(2) 値の代入 System.out.println(data); //(3) 値の参照(表示) } } これにj = i + 1;をあてはめるんですか? 動かし方を教えてください?