Эта программа заканчивается в бесконечном цикле?Как я могу сказать? - PullRequest
2 голосов
/ 22 сентября 2011

Я запускаю программу и вижу только пустое пространство под Netbeans.

Сначала я подумал, что она не запустилась, затем я запустил четыре программы случайно, и Netbeans потерпел крах.Итак, мой первый вопрос: это бесконечный цикл, и если да, то почему?

Из того, что я вижу, это int = 0, 0 равно >=0 Так что оно должно работать как 0 + 0 ... подождать, если int number и int sum оба равны нулю, тогдазначит, программа не может продолжаться, потому что она застряла с нулями зацикливания?Но почему бы не показать результат 0 много раз вместо того, чтобы быть пустым?

public static void main(String[] args) {

    int number = 0;
    int sum = 0;
    while (number >= 0 || number <= 10) {
        sum += number;
        number += 3;
        System.out.print(" Sum is " + sum);
    }
 }

Ответы [ 4 ]

6 голосов
/ 22 сентября 2011

Продумайте логику самостоятельно. Когда число никогда не будет больше или равно 0? Вы знаете, что у вас есть оператор или (||), и вы знаете, что это будет верно, если оба утверждения справа или слева верны. Может быть, вы хотите использовать другой оператор там?

Опять продумайте логику, поскольку она не будет вам врать. На самом деле вы должны пройтись по коду с карандашом и бумагой, начиная с 0, и посмотреть, что происходит на бумаге, поскольку это покажет вам вашу ошибку.

4 голосов
/ 22 сентября 2011

Да, это бесконечный цикл, вы, вероятно, имели в виду:

while (number >= 0 && number <= 10)

В противном случае число всегда будет больше или равно нулю и всегда будет повторяться снова.

EDIT:

number >= 0 даже не нужен. Это будет работать только с:

while (number <= 10)
0 голосов
/ 10 октября 2011

Вы проходите через это в отладчике !!

Стоит научиться пользоваться отладчиком, особенно если вы еще не умеете замечать ошибки вручную.

0 голосов
/ 22 сентября 2011

Да, это будет бесконечный цикл || значит или

while (a || b) {
  //do something
}

вам нужно только выполнить ЛЮБОЕ ОДНО СОСТОЯНИЕ (будь то a, или b, или оба) для выполнения цикла while.

А почему куча пробелов вместо группы нулей, я понятия не имею.

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