Урок 22
If и Else

красным цветом даны примечания переводчика
Концепция__Скрипт__Эффект__Разбор скрипта__Задание

Оглавление (в новом окне)

Концепция

Сегодня у нас в меню случайное число, две функции и знакомство с командой Else на закуску.

If/Else (если/иначе) дают вам дополнительный контроль над программой, позволяя принимать решения на оба случая: и когда условие выполнено, и когда не выполнено.

Скрипт

<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
function rand()
  {now=new Date()
   num=(now.getSeconds())%10
   num=num+1
   }
function guessnum()
  {guess=prompt("Угадай, какое?")
   if (eval(guess) == num)
   {alert("ПРАВИЛЬНО!!!")
    rand()
    }
     else
    alert("Нет. Попробуй еще раз.")
      }
  </SCRIPT>
<BODY onLoad="rand()">

  <h3>Я загадал число от 1 до 10</h3>

  <FORM NAME="myform">

    <INPUT TYPE="button" VALUE="Угадай"
       NAME="b1" onClick="guessnum()">

  </FORM>
</BODY>
</HTML>

 

Эффект

Я загадал число от 1 до 10

.

Разбор скрипта

  • Начнем со строки BODY:

    <body bgcolor="хххххх" onLoad="rand()">

    На этот раз функция запускается не кнопкой через onClick, а командой onLoad, чтобы к тому времени, когда пользователь нажмет на кнопку, число уже было выбрано. Если сделать это, как в прошлом уроке, то каждый раз, нажимая на кнопку, вы будете получать новое число. А оно должно оставаться одним и тем же, пока вы гадаете.

  • Первая функция:

    function rand() {
    now=new Date()
    num=(now.getSeconds())%10
    num=num+1
    }

    Функция выбирает наугад число от 0 до 9 и привязывает его к num. Потом прибавляет к num единицу, чтобы выбор осуществлялся между 1 и 10. Мы делали это на прошлом уроке.

  • Вторая функция:

    function guessnum()
      {guess=prompt("Угадай, какое?")
       if (eval(guess) == num)
       {alert("ПРАВИЛЬНО!!!")
        rand()
        }
         else
        alert("Нет. Попробуй еще раз.")
        }

    Этот фрагмент написала Эндри, потому что она очень умная. В памяти компьютера уже есть число, полученное через первую функцию. Вторая дает вам возможность угадать его. Смотрите, что происходит:

    • С помощью запроса создается переменная guess (догадка).
      Функция eval() вычисляет или выполняет строку в скобках (выражение, команду или последовательность команд) и подставлает полученное значение вместо себя. Она не является методом какого-либо объекта, но может использовать свойства уже существующего. В данном случае переводит текст, полученный с помощью запроса, в нашу функцию для последующей обработки.
      Обратите внимание на {фигурные скобки}. Все это очень похоже на Урок 21.
    • Переходим к IF/Else. Если (if) guess (догадка) равна загаданному числу num, тогда запускается команда alert("ПРАВИЛЬНО").
    • Если это не так, а иначе (else), тогда запускается другая команда alert.
  • Это вам уже знакомо:

    <form name="myform">
    <input type="button" value="Угадай" name="b1" onClick="guessnum()">
    </form>

    Кнопка запускает функцию, которая дает возможность угадать задуманное число.

Ваше задание

Придется вам постараться! Измените сегодняшний скрипт так, чтобы при неверной догадке он сообщал пользователю, что он назвал слишком большое или слишком маленькое число.

Подсказка! В этом случае возможны только три решения: слишком много, слишком мало или правильно. Подумайте вот о чем: нужна ли вам команда Else или сойдет и парочка дополнительных If?

Возможный ответ здесь

Концепция__Скрипт__Эффект__Разбор скрипта__Задание

Вперед, на Урок 23

авторы Джо Бернс и Эндри Грауни. Оригинал и многое другое на английском языке © EarthWeb Inc.
Перевод, оформление и верстка © Татьяна.

Hosted by uCoz