This question already has answers here:
Java calculator not executing if-statement [duplicate]
(3个答案)
6年前关闭。
在下面的代码中,在第一个for循环的第一次迭代中,box [a]被自动分配一个空值。
其余的迭代很好(接受用户输入)。只有第一个具有自动分配空值的问题。
有谁知道为什么会这样吗?谢谢。
(3个答案)
6年前关闭。
在下面的代码中,在第一个for循环的第一次迭代中,box [a]被自动分配一个空值。
其余的迭代很好(接受用户输入)。只有第一个具有自动分配空值的问题。
有谁知道为什么会这样吗?谢谢。
package testing;
import java.util.Scanner;
public class Testing {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Scanner in2 = new Scanner(System.in);
int boxNumber;
boxNumber = in.nextInt();
String[] boxes = new String[boxNumber];
System.out.println(boxNumber);
for(int a=0; a <= boxes.length - 1; a++){
boxes[a] = in.nextLine();
System.out.println(boxes[a]);
}
int packageNumber;
packageNumber = in2.nextInt();
String[] packages = new String[packageNumber];
System.out.println(packageNumber);
for(int n=0; n <= packageNumber - 1; n++){
packages[n] = in.nextLine();
System.out.println(packages[n]);
}
}
}
最佳答案
符合发生情况描述的情况是,当您在第一行中键入数字时,其余各行是框的字符串。
但是nextInt()
方法不会前进到第一个换行符之后,因此,当您第一次调用nextLine()
时,它会在行的其余部分匹配,直到第一个换行符""
(不是null
)为止。
在调用nextInt()
之后,在newLine()
循环之前插入对for
的调用以绕过第一个换行符。
String firstNewLine = in.nextLine();
for(int a=0; a <= boxes.length - 1; a++){
10-05 22:37