public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number = 1;
int[] arrayNumber = new int[10];
do {
System.out.println("Please enter numbers (0 to stop) : ");
for (int i = 0; i < arrayNumber.length; i++) {
arrayNumber[i] = scanner.nextInt();
if (arrayNumber[i] == 0) {
number = 0;
}
}
} while (number != 0);
我正在尝试让用户输入数字(最多10个),并在用户输入0时停止。但是,输入0并不会停止。
答案 0 :(得分:1)
这仅仅是因为您有一个内部for循环,您将数字设置为0,但是for循环仍未完成。这就是解决方法
这将在用户输入10个数字或输入0(以先到者为准)后完成执行
Scanner scanner = new Scanner(System.in);
int[] arrayNumber = new int[10];
int maxNums = 0;
while (maxNums < 10) {
arrayNumber[maxNums] = scanner.nextInt();
if (arrayNumber[maxNums] == 0) break;
maxNums++;
}
这更短,更整洁,更易读
答案 1 :(得分:0)
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number = 1;
int[] arrayNumber = new int[10];
do {
System.out.println("Please enter numbers (0 to stop) : ");
for (int i = 0; i < arrayNumber.length; i++) {
arrayNumber[i] = scanner.nextInt();
if (arrayNumber[i] == 0) {
number = 0;
break;
}
} while (number != 0);
答案 2 :(得分:0)
重点是,只有在 for循环的最后一次迭代中输入0时,您的代码才能正常运行。您可以明确地break
循环,让while
循环处理您的零值并停止循环。
do {
System.out.println("Please enter numbers (0 to stop) : ");
for (int i = 0; i < arrayNumber.length; i++) {
arrayNumber[i] = scanner.nextInt();
if (arrayNumber[i] == 0) {
number = 0;
break;
}
}
} while (number != 0);