Сумма натуральных чисел с операторм while в С++
Здесь приведены примеры вычисления суммы натуральных чисел с помощью оператора while. В принципе, вместо двух команд s+=i и i++ можно было использовать одну команду s+=i++, но в данном случае это не принципиально. Алгоритм выполнения программы следующий: сначала выводится текстовое сообщение с приглашением ввести число. После ввода пользователем числа проверяется неравенство i<=n (переменная i предварительно инициализирована с единичным значением). Если значение переменной i не превышает введенного пользователем значения n, выполняются команды оператора цикла (s+=i и i++ соответственно). После этого снова проверяется условие и т.д.
до тех пор, пока значение переменной i не превысит значения n. Результат вычисления суммы чисел выводится на экран.
Применение оператора do-while для решения той же задачи приведено в коде ниже.
На первый взгляд может показаться, что разницы между двумя программами с циклами while(} и do-while() практически никакой, но одно принципиальное отличие все же есть. Если пользователь введет, например, отрицательное число (значение переменной n), то первая программа в качестве значения суммы укажет 0, в то время как во втором случае будет выведена 1. Причина в том, что в цикле
while() при ложном проверяемом условии команды оператора цикла не выполняются и в качестве значения суммы возвращается начальное нуле вое значение переменной s. Во втором случае сначала выполняется один цикл и уже после этого проверяется условие. За этот один выполненный цикл значение переменной s увеличивается на 1, и в результате программой для суммы натуральных чисел возвращается единичное значение.
#includeusing namespace std; int main(){ int n,i=1,s=0; cout<<"Enter number n="; cin>>n; while(i < =n){ s+=i; i++; } cout<<"Sum of natural numbers is: " << s << "\n"; return 0; }
#includeusing namespace std; int main(){ int n,i=1,s=0; cout<<"Enter number n="; cin>>n; do{ s+=i; i++; }while(i <= n); cout<<"Sum of natural numbers is: " << s << "\n"; return 0; }