I2R Web Creation - еженедельный сетевой журнал для вебмастеров

   
Perl для чайников (Ответы)

Решение и комментарии приведены в первоначальном варианте с моими комментариями

print "Enter a number (999 to quit): ";
chomp ($n = <STDIN>);
while ($n != 999) {
$sum += $n;
print "Enter another number (999 to quit): ";
chomp ($n = <STDIN>);
}
print "The sum is $sum\n"; *


* - Если вы используете Windows, не забудьте добавить <>;

Первая строка приглашает ввести первое число. Вторая строка считывает это число с терминала. Цикл while продолжает выполняться до тех пор, пока число не станет равным 999.
Операция += накапливает числа в переменной $sum. Обратите внимание: начальное значение этой переменной - undef, ** что очень хорошо для сумматора, потому что первое прибавляемое значение будет фактически прибавляться к нулю.

В этом цикле мы должны запрашивать и принимать ещё одно число, чтобы проверка в начале цикла производилась по вновь введенному числу.
После выхода из цикла программа выводит накопленные результаты.

** - undef - это по сути и есть ложь (её концентрат... :) за тем исключением, что в нём отсутствует даже нуль (т.е. нуль это уже не undef).

Дмитрий Червинский
http://perlbook.nm.ru/

© журнал принадлежит I2R Web Creation
по всем вопросам обращаться А. Кузьмин