我想从的标准输入

3
10 20 30

第一个数字是第二行中的数字量。这就是我得到的,但是它被困在while循环中...所以我相信。我在 Debug模式下运行,但数组未分配任何值...
import java.util.*;

public class Tester {

   public static void main (String[] args)
   {

       int testNum;
       int[] testCases;

       Scanner in = new Scanner(System.in);

       System.out.println("Enter test number");
       testNum = in.nextInt();

       testCases = new int[testNum];

       int i = 0;

       while(in.hasNextInt()) {
           testCases[i] = in.nextInt();
           i++;
       }

       for(Integer t : testCases) {
           if(t != null)
               System.out.println(t.toString());
       }

   }

}

最佳答案

它与条件有关。

in.hasNextInt()

它使您可以继续循环,然后在3次迭代之后,“i”值等于4,并且testCases [4]引发ArrayIndexOutOfBoundException。

解决此问题的方法可能是
for (int i = 0; i < testNum; i++) {
 *//do something*
}

09-25 22:24