2016-09-12 4 views
-2

Почему не введенные числа не суммируются для суммы в конце программы?В то время как цикл работает не так, как планировалось

 int data; 
     int sum = 0; 


     int count =0; 
     do { 
     System.out.print("Please enter a number: "); 
     data = input.nextInt(); 
     count++; 
     }  


     while (count < 10); 



     while (sum !=0) 

     break; 

     System.out.println("The total is " + sum); 

    } 
} 
+0

Почему у вас есть бессмысленный цикл while и почему бы не использовать цикл for? Кроме того, вы даже не увеличиваете 'sum', так что вы ожидаете? – Li357

+3

Как это могло быть? Вы никогда не меняете значение 'sum' после первоначального присвоения 0. --- Кроме того, ваш цикл do-while выглядит странно и отсоединен. Поместите 'while' в ту же строку, что и'} '. --- И как вы думаете, что 'while (sum! = 0) break,' loop делает, и почему вы так думаете? --- И, наконец, после получения значения и присвоения его 'data', разве вы, возможно, не хотите использовать значение для чего-то? – Andreas

+0

По какой-то причине строка не копировалась, у меня есть «сумма + = данные»; выше моего второго заявления. Я должен был включить «перерыв»; потому что без него моя программа будет постоянно добавлять последний номер, введенный в себя. –

ответ

1

Позволяет аккуратные вещи и после подсчета ++; Я добавляю строку, которая суммирует ваше значение, например. sum + = данные;

int data; 
int sum = 0; 
int count =0; 
do { 
    System.out.print("Please enter a number: "); 
    data = input.nextInt(); 
    count++; 
    sum += data;  // new line here to sum value 
} while (count < 10); 

System.out.println("The total is " + sum); 
+0

Ничего себе! Огромное спасибо. У меня были лишние строки без причины. У меня была сумма + = данных; там, я не знаю, почему это не копировало для этого, но у меня было это выше моего второго заявления. Я ноб. –

+0

Рад помочь.если этот ответ помог вам, пожалуйста, подумайте о повышении и/или принятии - спасибо –

0

Разбивая код, мы можем видеть, где будет проблема.

Вы инициализируете свои переменные.

int data; 
    int sum = 0; 


    int count =0; 

Эта деталь выглядит правильно.

Затем вы начинаете свой первый цикл, чтобы получить свои данные от пользователя.

do { 
    System.out.print("Please enter a number: "); 
    data = input.nextInt(); 
    count++; 
    }  


    while (count < 10); 

Здесь мы видим, что для каждого времени мы итерации цикла мы устанавливаем переменную «данные» к значению и занесены приращения счетчика. Цикл выполняется 10 раз.

В точке мы выходим из цикла переменные будут установлены следующим образом:

data = `last number entered by the user` 
    sum = 0 
    count = 10 

Теперь мы посмотрим на последнюю петлю.

while (sum !=0) 

    break; 

Поскольку «сумма» = 0, мы никогда не вводим петлю.

Наконец, у нас есть заявление о печати.

System.out.println("The total is " + sum); 

С «сумма» = 0 линия печататься будет сказать The total is 0

, если вы измените свой первый цикл к ...

do { 
    System.out.print("Please enter a number: "); 
    data = input.nextInt(); 
    sum = sum + data; 
    count++; 
}  


while (count < 10); 

то вы должны получить сумму данных занесены ,

Кроме того, ваш второй цикл следует удалить, так как даже если «сумма» не равна 0, он войдет в цикл и сразу же ударит оператор break, заставив его выйти из цикла.

Смежные вопросы