1 Бурибаев Бахыт Бурибаевич
2 ВОПРОСЫ: 0. Присваивание 1. Ввод информации 2. Условная команда 3. Переключатель 4. Логические операции 5. Блок 6. Арифметические и строковые выражения как условия 7. Значения логического типа 8. Трудные условия 9. Ввод альтернативы
3 0. Присваивание Наряду с привычным присваиванием вида «переменная=выражение», можно использовать следующие записи: Общий вид переменная переменная переменная переменная переменная += выражение переменная -= выражение переменная *= выражение переменная /= выражение переменная %= выражение Пример х х х х х += "кот" х-=2 х *= 10 х /= у + z х%=9 Что означает х = х + 1 х = х - 1 х = х + "кот" х = х - 2 х = х * 10 x = x / (y+z) х = х%9
4 В следующем примере: var х = 1; var у; у = (х += 2) + 1; переменная у получит значение 4, а переменная х значение 3. Наиболее популярно использование операции «=» в цепочке присваиваний: x = y = z = t = выражение; Здесь нескольким переменным присваивается одно и тоже значение. Операции «++» и «--» применимы только к переменным, но не к выражениям.
5 Разница между командами ++ х и х ++ (-- х и х --) проявляется тогда, когда эти команды используются как составная часть других команд. В первом случае (знаки перед именем) операция выполняется до использования переменной, а во втором – после. х = 5; После выполнения этих команд: у = ++ х; х и у равны 6. х = 5; После выполнения этих команд: у = х ++; х равно 6, а у равно 5.
6 1. Ввод информации Функция alert предназначена для вывода информации пользователю. Для ввода информации можно использовать функцию prompt: prompt("надпись", "значение строки ввода по умолчанию"); При этом на экран выводится окно с двумя кнопками внутри.Мы записываем сообщение в строке ввода и нажимаем ОК.Окно убирается и введе-нный текст становится значением функции prompt. Это значение можно, например, присвоить переменной и использовать затем в скрипте. Если пользователь нажимает кнопку Cancel, функция prompt возвращает специальное значение null (это не строка "null", не пустая строка "", а значение специального служебного типа данных).
7 Пример var str = prompt("Сколько будет 2 х 2?", "5"); if (str == "4") alert ("Гениально! Ответ и правда 4!"); else alert("Шутка хороша, когда ее понимают!"); При запуске этого скрипта на экран выводится окно, изображенное на рис.
8 Если ввести число 4 и нажать кнопку ОК, скрипт продолжит работу так, как показано на рис. ниже. Если оставить в поле ввода число 5 (или ввести любое значение, не равное 4), на экране появится сообщение, показанное на рис.
9 2. Условная команда Общий вид условной команды: Общий вид if (условие) команда 1 else команда 2 Пример if (а > b) с = а; else с = b; Проверяется условие.Если условие истинно, то выполняется команда 1, иначе команда 2. После выполнения кода: х = 1; if (х == 1) у = 10; else у = 20; х += у; переменная х получит значение 11.
10 А после выполнения кода: х = 1; if(x != 1) у = 10; elseу = 20; х += у; переменная х получит значение 21. Условную команду разрешается записывать без ветви else: Общий вид Пример if(условие) команда 1if(х < 0) х = -х; После выполнения кода: х = 1; у = 10; if(x = = 1) у += 10; х += у; переменная х получит значение 21.
11 А после выполнения кода: х = 1; у = 10; if(х != 1) у += 10; х += у; переменная х получит значение 11.
12 3. Переключатель Общий вид if условие 1) ком 1; else if(условие 2) ком 2; else if(условие 3) ком 3;... else комп; Пример if (Day = = 1) NameDay = "Понедельник"; else if (Day == 2} NameDay = "Вторник"; else if (Day == 3) NameDay = "Среда"; else if (Day == 4) NameDay = "Четверг"; else if (Day == 5) NameDay = "Пятница"; else if (Day == 6) NameDay = "Суббота"; else if (Day == 7) NameDay = "Воскресенье"; else NameDay = "ошибка";
13 Пример var str = prompt("Сколько будет 2 x 2?", "5"); if (str == null) alert("He стали вычислять?.. Зря!"); else if (str == "4") alert("Гениально! Ответ и правда 4!"); elsealert("Шутка хороша,когда ее понимают!"); Разработчики JavaScript добавили в язык специальную конструкцию switch, которую «понимают» браузеры Netscape Navigator и Internet Explorer, начиная с четвертых версий. Работает эта структура аналогично подобной конструкции в языках Си и Java.
14 Общий вид switch (выражение) { case вариант 1: команды break; case вариант 2: команды break;... default: команды } Пример switch (Day) {case 1: NameDay = "Понедельник"; break; case 2: NameDay = "вторник"; break; case 3: NameDay = "среда"; break; case 4: NameDay = "четверг"; break; case 5: NameDay = "пятница"; break; case 6: NameDay = "суббота"; break; case 7: NameDay = "воскресенье"; break; default: NameDay = "ошибка"; }
15 Управление передается на команды, расположенные за первым по порядку case, в котором значение варианта совпадает со значением выражения, записанного в заголовке switch (выражение). Команда break передает управление на первую команду, следующую за конструкцией switch. Если команда break отсутствует, проверка вариантов продолжается. Вариант default (он может отсутствовать) срабатывает тогда, когда значение выражения не соответствует ни одному из вариантов case.
16 4. Логические операции В качестве условия можно записывать логические выражения. При этом разрешается использовать следующие логические операции Обозначение == != > >= < <= && || ! Описание Равно Не равно Больше Больше или равно Меньше Меньше или равно Логическое И Логическое ИЛИ Логическое отрицание Пример х + 1 == 8 str != "да" х * у > 5 d >= 0 num < 10 bonus <= 5 1 < х && х < 10 х == 1 || х == 10 !(1 < х && х < 10)
17 Цепочка команд, заключенная в фигурные скобки {команда 1; команда 2;...}, рассматривается как одна команда. Такая сложная команда называется составной, или блоком. Символ «;» за скобкой «}», закрывающей блок, не ставится. Условная команда с использованием блока может выглядеть так: 5. Блок Общий вид if(условие) {... команды... } else {... команды... } Пример if(d > 0) { xl = -(b + Math.sqrt(d))/(2*a); x2 = -(b - Math.sqrt(d))/(2*a); mes = "два корня"; } else if (d == 0) {xl = -b / (2 * a); mes = "один корень"; } else mes = "нет корней" ;
18 Конструируем программу небольшого экзамена.Экзамен состоит из пяти вопросов. За каждый верный ответ начисляется один балл. В итоге выставляется оценка от 2 до 5 по правилу: - оценка равна 2, если верных ответов меньше 3; - оценка равна числу верных ответов в противном случае. Программа экзамена по логическим выражениям выглядит так: Экзамен по логическим выражениям Экзамен по логическим выражениям <!-- var bonus =0; // Счетчик верных ответов. var num =1; // Номер вопроса. var question; // Вопрос.
19 // 1-й вопрос. question = "Вопрос " + num + ". Верных ответов = " + bonus + ".\n Если х=5,то 1<х &&&& х<10 равно true или false?"; if(prompt(question," true")=="true") bonus++; num++; // 2-й вопрос. question = "Вопрос " + num + ".Верных ответов = " + bonus + ".\n Если х=5, то !(l<x &&&& x<10) равно true или false?"; if(prompt(question, " true")=="false") bonus++; num++; // 3-й вопрос. question = "Вопрос " + num + ". Верных ответов = " + bonus +".\n Если х=5, то х != 5 равно true или false?"; if(prompt(question," true")=="false") bonus++; num++;
20 // 4-й вопрос. question = "Вопрос " + num + ".Верных ответов = " + bonus + ".\n Если х=5, то x++ != 5 равно true или false?"; if(prompt(question, " true")=="false") bonus++; num++; // 5-й вопрос. question="Вопрос "+num+".Верных ответов="+bonus+ ".\n Если х=5,то ++x !=5 равно true или false?"; if(prompt(question, "true") == " true") bonus++; // Показ результата в окне alert, if(bonus < 2) bonus = 2; alert("Ваша оценка за работу: " + bonus); //--> Экзамен закончен! Замечание. Для браузеров NN и IE четвертых версий для вывода на экран одного символа «&» приходится записывать «&&». Конструкция «\&» не помогает.
21 Построенный экзамен будет иметь вид, показанный на рис.
22 6. Арифметические и строковые выражения как условия В качестве условия в команде if можно записывать не только логические, но и арифметические, и даже строковые выражения. При этом считается, что условие ложно, если значение выражения равно 0 или пустой строке "", и истинно в противном случае. Пример var x = 20; if(20 - х) х ++; var х = 20; if(2 * х) х ++; var х = ""; if(x) х += "киса"; var х = ""; if(x+"?") х += "киса"; var х = ""; if(!х) х += "киса"; Пояснения Условие ложно, значение х не изменится Условие истинно, значение х увеличится на 1 Условие ложно, значение х не изменится Условие истинно, х получит значение «киса» Условие истинно, х получит значение «киса»
23 Условные выражения Условные выражения используются для сравнения одних переменных с другими, а также с константами или значениями, возвращаемыми различными выражениями. В языке есть оператор сравнения ?, имеющий синтаксис: (условное выражение) ? операторы_1 : операторы_2 Если условное выражение истинно - выполняются операторы_1, в противном случае операторы_2. Можно также присваивать значения переменным.
24 Например, оператор: type_time = (hour >= 12) ? "PM":"AM" присваивает строковое значение "PM" переменной type_time, если значение переменной hour больше или равно 12; в противном случае прис-ваивается "AM". Оператор ? в действительности является сокращенным вариантом оператора if...else. Этот пример может быть записан так: if (hour >= 12) type_time="PM"; else type_time="AM";
25 7. Значения логического типа В языке JavaScript переменная может принимать значение логического типа. Этот тип имеет две константы, обозначаемые как true и false. Пример var x = true; var у = 2; if (х) у ++; var x = true; var у = 2; if ( !x) у ++; var x = true; var у = 2; if (х || !х) у ++; var x = true; var у = 2; if (x && !х) у ++; Пояснения После выполнения команд значение у равно 3 После выполнения команд значение у равно 2 После выполнения команд значение у равно 3 После выполнения команд значение у равно 2
26 8. Трудные условия Условия, в состав которых входят арифметические и строковые выражения, на первых порах вызывают трудности. Рецепт их преодоления очень прост. Нужно помнить, что арифметические и строковые выражения, входящие в состав условия, сначала вычисляются, а затем их значения сопоставляются с логическими значениями true и false. Строковые константы «волк» и «крокодил», а также числовые константы 25 и 3.14 эквивалентны одной и той же логической константе true. Следовательно, логические отрицания этих величин равны false.
27 Пример if ("волк") if ("крокодил") if (25) if (3.14) if (!"волк") if (!"крокодил") If (!25) if (!3.14) Пояснения То же самое, что if ( true) То же самое, что if (false) Пример "волк" && 25 !"волк" && 25 !"волк" || 25 !"" || ! ("" + "кот") || Пояснения Эквивалентно true && true Эквивалентно ! true && true Эквивалентно ! true || true Эквивалентно true || false Эквивалентно false || false Несколько более сложных примеров: Равно true Равно false Равно true Равно false Поясним последний пример цепочкой преобразований: !("" + "кот") || !"кот" || 0 ! true || false false || false false
28 9. Ввод альтернативы Если нужно, чтобы пользователь выбрал один из двух вариантов ответа на вопрос, то можно воспользоваться функцией prompt:
29 Существует, однако, более простой и краси-вый способ узнать желание пользователя функция confirm: confirm("надпись"); Эта функция работает так. На экран выводится окно с двумя кнопками: Если пользователь нажимает кнопку ОК, функция confirm возвращает значение true, если кнопку Отмена (Cancel) значение false. Можно использовать эквивалентные клавиши и.
30 Пример if(confirm("Хлеба и зрелищ?")) alert("Смотри сейчас, а кушай после!"); elsealert("И, словом, тот хотел арбуза,\n" + "А тот соленых огурцов."); При запуске этого кода на экран выводится окно, показанное на рис. Если нажать кнопку ОК, скрипт продолжит работу как показано на рис., а при нажатии Отмена, на рис.
31