このコードは3回入力するのが目的ではなく、
入力した値が配列に格納されている3つの数字のどれかと合致するかを確認するのが目的です。
Java
1import java.util.Scanner;
2public class Main {
3 public static void main(String[] args) {
4 int[] numbers = {3,4,9};
5
6 System.out.println("数字を一文字入力してください");
7 int input = new Scanner(System.in).nextInt();
8
9 for(int n : numbers) { //numbersの数字【今回だと3,4,9}が順番に n に入る
10 if(n == input) { //nと入力値が1回でもあっていれば答えが出力される
11 System.out.println("正解!");
12 }
13 }
14
15 }
16}
17
これは配列が3列あるから、三回まで入力できるのか
配列が3列というのもよくわかりませんが、3回入力できません。
Java
1 System.out.println("数字を一文字入力してください");
2 int input = new Scanner(System.in).nextInt(); //ここで数値を入力
3
4 for(int n : numbers) {
5 //省略 (配列の長さ分[今回だと3回]繰り返されるのはこのfor文の中だけです。
6 }
for文書いとけばコード全体がその分繰り返されるわけではありません。
あくまで、繰り返されるのは for文の中だけです。
今回だと、System.out.println("入力してください"); も、
int input = new Scanner(System.in).nextInt(); も for文の外に書いてありますよね?
なので、ユーザーには値を1回 入力してもらうだけです。
for文の中では値を入力してもらうことはありません。
3回入力したいならこう?っていう提案
Java
1import java.util.Scanner;
2public class Main {
3 public static void main(String[] args) {
4 int[] numbers = {3,4,9}; //比較用の配列は固定なので、コードの一番上(for文の外)に記述します。
5
6 for(int i = 0; i < 3; i++) { //3回入力してもらうために3回繰り返すfor文をつくります
7 System.out.println("数字を一文字入力してください");
8 Scanner scan = new Scanner(System.in); //for文の最初の方で、ユーザーに入力してもらいます。
9 int input = scan.nextInt();
10
11 for(int n : numbers) { //for文の中にfor文を記述します。二重ループっていうやつです
12 if(n == input) {
13 System.out.println("正解!");
14 }
15 }
16 }
17 }
18}
3回入力して、しかも数値のチェックをしたいなら二重ループにする必要があるかとおもいます。
恐らく質問者さんのやりたいことはこれなのかな