Web - кодинг: JavaScript:


Самоучитель по JavaScript
Урок 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

    Авторы и Эндри Грауни.

    ©
    Перевод © Татьяна.






    При перепечатке любого материала с сайта, видимая ссылка на источник www.warayg.narod.ru и все имена, ссылки авторов обязательны.

    © 2005