Вывод не отображается для второго массива в Java

#java #arrays #output #java.util.scanner #println

Вопрос:

Я новичок в программировании на Java и создал программу, которая принимает 10 чисел в качестве входных данных от пользователей и печатает их. Первый раздел использует цикл for, а второй-цикл while. Первый раздел работает правильно, а второй раздел не отображает выходные данные. Кто-нибудь может мне помочь?

 import java.util.Scanner;

public class ArrayOfTenElements {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    int numArray1[] = new int [10];
    int numArray2[] = new int [10];
    int i;

    //First Section
    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter 10 numbers: ");
    for(i=0;i<10;i  ) {
        numArray1[i] = scanner.nextInt();
    }
    System.out.println("The entered numbers are: ");
    for(i=0;i<10;i  ) {
        System.out.print(numArray1[i]   " ");
    }
    
    //Second Section
    System.out.println("nEnter 10 numbers: ");
    int j = 0;
    while(j<10) {
        numArray2[j] = scanner.nextInt();
        j  ;
    }
    System.out.println("The entered numbers are: ");
    while(j<10) {
        System.out.print(numArray2[j]   " ");
        j  ;
    }
    scanner.close();
}
 

}

Комментарии:

1. вы просматривали код в отладчике?

2. @Oldпрограммист Нет, я этого не делал

Ответ №1:

Вы не сбрасываете переменную j обратно в 0 после 1-го цикла. таким образом, 2-й цикл начинается со значения 10 для j, и, следовательно, цикл while не выполняется.

 //Second Section
System.out.println("nEnter 10 numbers: ");
int j = 0;
while(j<10) {
    numArray2[j] = scanner.nextInt();
    j  ;
} 
// add this
j = 0;

System.out.println("The entered numbers are: ");
while(j<10) {
    System.out.print(numArray2[j]   " ");
    j  ;
}
 

Ответ №2:

Когда вы используете last для цикла, значение j равно 10 в начале этого цикла, поскольку вы объявляете j вне области видимости.Поэтому вам следует объявить новую переменную и заменить цикл while на нее.Другое дело, что вы должны использовать цикл for для отображения массива 2.Обычно мы используем циклы while только тогда, когда мы не знаем о времени окончания.Поэтому для этого мы используем цикл for.

 //Second Section
System.out.println("nEnter 10 numbers: ");
int j = 0;
while(j<10) {
    numArray2[j] = scanner.nextInt();
    j  ;
}

System.out.println("The entered numbers are: ");
for(i=0;i<10;i  ) {
    System.out.print(numArray2[i]   " ");
}