Цикл while, который читает неотрицательные значения и завершается, когда читается значение меньше 0 - PullRequest
0 голосов
/ 18 февраля 2012

У меня проблема в Java Code Lab, которая выглядит так:

Дайте, чтобы две переменные типа int, total и total были объявлены, напишите цикл, который считывает неотрицательные значения в сумму и добавляет их в итог. Цикл завершается, когда значение меньше 0 считывается в сумму.

В моих выходных данных либо указано, что я включаю отрицательное значение в мою сумму, либо я, кажется, останавливаюсь на нуле, в зависимости от того, как я кодирую утверждение.

Мой цикл выглядит следующим образом:

total = 0;
amount = 0;
while( amount > -1 )
{

amount = TC.getNum();

total = total + amount;
}

Этот конкретный говорит, что я, кажется, остановился на нуле.

1 Ответ

2 голосов
/ 18 февраля 2012

Ваш код добавляет amount безоговорочно к total, а затем проверяет, должен ли он завершиться, прежде чем сделать это. Попробуйте:

total = 0;
amount = 0;
do {
    total = total + amount;
    amount = TC.getNum();
} while ( amount > -1 );

или

total = 0;
amount = 0;
while(true) {
    amount = TC.getNum();
    if (amount < 0)
        break;
    total = total + amount;
}

Я сам не уверен, что мне нравится больше.

Редактировать: мне кажется, мне больше нравится вторая версия. Он читается более естественно, и первый может запутаться из-за лишнего (и потенциально подверженного ошибкам) ​​total = total + 0 в самом начале цикла.

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