Роботландский Университет © А.А.Дуванов

ЗНАКОМСТВО С ЯЗЫКОМ

i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | ?
урок 3 | зачет | задания | дополнения | урок 5

урок 4: повторения

На предыдущих уроках рассматривались команды:

команда присваивания result = x*y;
условная команда if (x) z++;
переключатель
switch(x)
{
  case "1":
    str = "one";
    break;
  case "2":
    str = "two";
    break;
  default:
    str = "ошибка";
}
блок (составная команда) { c = x; x = y; y = c; }

Продолжим знакомство с командами JavaScript.

команды цикла

цикл while

общий вид   пример  
while(условие)
  команда
 
var i   = 1;
var sum = 0;
while(i <= 100)
{
  sum += i;
  i++;
}
alert("Сумма 1+2+...+100 = " + sum);

Цикл работает так. Сначала проверяется условие. Если оно истинно, выполняется команда (тело цикла). И эти действия повторяются, то есть снова проверяется условие, если оно истинно, выполняется тело цикла и т.д.

Цикл заканчивает работу, когда при очередной проверке условие оказывается ложным. Так как условие проверяется перед выполнением тела цикла, то команды, входящие в цикл, могут не выполниться ни разу.

Цикл for

общий вид   пример  
for(начало;условие;приращение)
  команда
 
var i;
var sum = 0;
for(i=1; i<=100; i++) sum += i;
alert("Сумма 1+2+...+100="+sum);

Цикл работает так. Команда, помещаемая в начало, выполняется до циклического повторения (в примере это команда i=1;), а сам цикл образуется следующими действиями:

  1. Проверка условия (в примере i<=100).
  2. Выполнение тела цикла (в примере sum += i).
  3. Выполнение команды, записанной в разделе приращение (в примере i++).

Как и в команде while, тело цикла может не выполниться ни разу, если условие ложно с самого начала. Не выполнится при этом и команда из раздела приращение. А вот команда из раздела начало выполняется всегда, независимо от условия, и выполняется ровно один раз.

Замечание. В заголовке цикла for любая из трех конструкций начало, условие, приращение может быть опущена, при этом соответствующую точку с запятой опускать нельзя. Когда опущено условие, считается, что оно имеет значение true. Таким образом, цикл превращается в бесконечный:

for(;;) команда;
  Этот цикл не остановится, если только не будет содержать внутри себя команду break.

Команды break и continue

Эти команды используют в теле цикла для изменения последовательного хода выполнения команд.

Команда continue заставляет браузер пропустить выполнение всех команд после нее и до конца тела цикла. Но цикл продолжается.

Команда break еще радикальнее — она заставляет браузер немедленно прекратить выполнение цикла.

пример 1 (continue)

Найти сумму 5 четных чисел, случайным образом взятых из диапазона [1,20].

var len     = 5;  // Количество чисел.
var a       = 1;  // Левая граница интервала.
var b       = 20; // Правая граница интервала.
var sum     = 0;  // Сумматор.
var counter = 0;  // Счетчик чисел.
var number;       // Случайное число.
var str = "";     // Строка для вывода.
while (counter < len)
{
  number = Math.floor(a + (b-a+1)*Math.random());
  if (number%2) continue;
  sum += number;
  str += number;
  if (counter < len-1) str += " + ";
  else                 str += " = ";
  counter++;
}
str += sum;
alert(str);

Замечание. Стандартная функция Math.random() генерирует случайное число из отрезка [0,1]. Стандартная функция Math.floor(num) возвращает ближайщее целое число, меньшее или равное аргументу.
пример 2 (break)

Целые числа случайным образом генерируются из диапазона [1,20]. Требуется суммировать эти числа до тех пор, пока очередное случайное число не станет равным 10.

var a       = 1;  // Левая граница интервала.
var b       = 20; // Правая граница интервала.
var special = 10; // Критическое значение случайного числа.
var sum     = 0;  // Сумматор.
var number;       // Случайное число.
var str     = ""; // Строка для вывода.
for (;;)
{
  number = Math.floor(a + (b-a+1)*Math.random());
  sum += number;
  str += number;
  if (number == special) break;
  str += " + ";
}
str += " = " + sum;
alert(str);

Замечание. Конструкция for(;;){...} используется для задания бесконечного цикла.

 

     Испытатель while

     Испытатель for

 

Угадайка

Программа Угадайки


Дополнительный материал

зачетный класс

В каждом задании трех Зачетных классов нужно записать сообщение, которое появится в окошке alert после выполнения скрипта.

Зачетный класс 1

Сначала нажмите кнопку Сброс, затем приступайте к решению.

Чтобы увидеть результат работы, нажмите кнопку Оценка.

Зачетный класс 2

Сначала нажмите кнопку Сброс, затем приступайте к решению.

Чтобы увидеть результат работы, нажмите кнопку Оценка.

Зачетный класс 3

Сначала нажмите кнопку Сброс, затем приступайте к решению.

Чтобы увидеть результат работы, нажмите кнопку Оценка.

задания

  1. Создайте приложение для обучения малышей устному счету. Программа должна автоматически генерировать примеры типа число1 + число2 =, проверять ответы, реагировать на ошибки, выставлять оценку в конце работы.
 

содержание урок 3 урок 5 письмо автору об авторах