Почему я застрял в очень длинном цикле for в Java? - PullRequest
0 голосов
/ 23 декабря 2019

Я знаю, что немного глуповат, но подумал, что можно сделать перерыв на несколько минут и задать этот вопрос. Я пытаюсь добавить функцию обратного отсчета в поле ввода. Проблема заключается в том, что он вводит входное значение квадратное число раз, когда все, что я на самом деле пытаюсь - это увеличивать переменную, которая вызывается внутри самого цикла. Я уверен, что это придет ко мне, но помогает взглянуть на кого-то еще.

String propertyNumber = JOptionPane.showInputDialog("Enter Numer of Properties...");
int propNumber = Integer.parseInt(propertyNumber);
numOfProperties = new float[propNumber];

for(int i= 0; i < propNumber; i++) {
    for(int a = propNumber; a >= 0; a--) {
        String propertyVal = JOptionPane.showInputDialog("Enter each property value for the " + propNumber + " Properties you listed. You have " + a + " inputs left.");
        numOfProperties[i] = Float.parseFloat(propertyVal); //takes property value info and stores them inside the property number array
    }
}

Ответы [ 2 ]

0 голосов
/ 23 декабря 2019

Как я уже упоминал в комментариях, вам не нужен вложенный цикл. Я считаю, что вы хотите один цикл, и a должен быть рассчитан из числа свойств и текущего индекса i. Мол,

for (int i = 0; i < propNumber; i++) {
    int a = propNumber - i;
    String propertyVal = JOptionPane.showInputDialog("Enter each property value for the "
            + propNumber + " Properties you listed. You have " + a + " inputs left.");
    numOfProperties[i] = Float.parseFloat(propertyVal); 
}
0 голосов
/ 23 декабря 2019

Предположим, propNumber = 3 . Поскольку вы используете вложенные циклы, он будет работать следующим образом:

Сначала рассмотрим случай вложенного цикла:

for(int a = propNumber; a >= 0; a--) {

}

Если для параметра propNumber установлено значение 3, код внутри него будет выполнен 3. times.

Возьмем случай основного цикла:

for(int i= 0; i < propNumber; i++) {
    //another loop inside
}

Поскольку код внутри основного цикла будет выполняться 3 раза, цикл внутри него будет выполняться также 3 раза. 3 * 3 = 9.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...