<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

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

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Условный оператор в JavaScript

Условный оператор в JavaScript

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

Общий вид условного оператора в JavaScript такой:

if (условие) {
  //Блок операторов
}
else {
  //Блок операторов
}

Сначала идёт ключевое слово if, которое сообщает браузеру, что дальше идёт условный оператор. Внутри скобок указывается условие, которое, соответственно, возвращает true или false. Если выражение в скобках было true (истинно), то выполняется первый блок операторов, если условие false (ложно), то выполняется блок операторов в else. Также блок else не является обязательным, и дальше я приведу такой пример.

Давайте теперь потренируемся уже на практике. Решим такую задачу: пользователь вводит число, а мы выводим сообщание - больше оно или меньше 5.

var x = prompt("Введите число");
if (x < 5) alert ("Введённое число меньше пяти");
else alert("Введённое число больше пяти");

Разберём этот пример. Первой строкой мы вызываем функцию prompt, которая выводит окно с просьбой ввести число. Дальше пользователь вводит число, которое записывается в переменную x. А дальше идёт условие, которое я перевожу так: Если x меньше 5, то вывести сообщение: "Введённое число меньше пяти", иначе вывести сообщение "Введённое число больше пяти". Выражение x < 5 возвращает либо true ( < 5) или false (x >= 5). Также обратите внимание, что мы не используем фигурные скобки. Почему? Потому, что мы используем всего один оператор (функцию alert()). В принципе, мы можем их поставить, и ничего не поменяется, однако, здесь они будут лишними.

Однако, наша задача содержит существенную ошибку. Если пользователь введёт "5", то у нас выводится сообщение "Введённое число больше пяти", однако, это не совсем правильно. Поэтому давайте преобразуем условие таким образом:

if (x < 5) alert ("Введённое число меньше пяти");
else
  if (x == 5) alert ("Вы ввели пять");
  else alert("Введённое число больше пяти");

Как видите, блок else в первом условии преобразился. В блоке else проверяется на равенство x и 5-ти. И если это так, то выводится соответствующее сообщение, в противном случае, выводится, что число больше пяти. То есть условие внутри условия - это совершенно нормально. Также обратите внимание, что я по-прежнему не поставил фигурные скобки, так как if-else это один оператор. А когда только один оператор наличие скобок необязательно.

Давайте разберём ещё один пример. Создадим переменную, которая будет true, если введённое число положительное, и false, если число отрицательное.

var x = prompt("Введите число");
var positive = true;
if (x < 0) positive = false;
alert (positive);

В данном примере используется классический пример, когда мы берём какую-то переменную и присваиваем ей значение по умолчанию. И если это требуется, то меняем. В данном случае, мы меняем значение по умолчанию, если число отрицательное. Однако, данный пример можно было бы написать ещё красивее:

var x = prompt("Введите число");
var positive = x < 0;

Другими словами, мы переменной positive сразу присваиваем результат сравнения x и нуля.

Теперь поговорим о так называемых сложных условиях. В примерах выше мы рассматривали лишь простые условия, однако, существуют также и другие условия, которые состоят из нескольких условий. И здесь используются две операции: && - логическое И и || - логическое ИЛИ. Давайте напишем такое условие:

if ((x <= 5) && (x >= 0)) {//блок операторов}

Данное условие (сложное условие) даст true, тогда и только тогда, когда x <= 5 И x >= 0. В противном случае, вернётся false.

Рассмотрим сложное условие с логическим ИЛИ.

if ((x <= 5) || (x == 6)) {//блок операторов}

Перевести это можно так: если x <= 5 ИЛИ x == 6, то вернуть true, иначе false.

Последнее, что хочется сказать, что бывают условия, которые состоят из нескольких логических И и ИЛИ, и, порой, приходится очень серьёзно напрячь голову, чтобы разобраться в таком условии.

Вот и всё, что хотелось сказать по условным операторам в JavaScript. А дальше нужна лишь практика. Увы, но без практики, Вы никогда не научитесь использовать этот оператор, без знания которого двигаться дальше просто бессмысленно. Так что придумайте какую-нибудь несложную задачу (на подобии той, что мы решили выше) и решите её.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (40):

brussens brussens 29.10.2011 00:55:40

Михаил, я так понимаю, что JavaScript впринципе очень близок к php, просто уж слишком схож синтаксис?

Ответить

Admin Admin 29.10.2011 01:12:58

Все языки (по крайней мере, те 11, которые я знаю) очень схожи. Даже Assembler, который крайне сильно отличается от других языков, имеет много общих черт.

Ответить

fred fred 01.08.2012 01:02:45

На мой взгляд, пример с положительным и отрицательным числом не совсем корректен. Допустим, вместо alert, мы воспользуемся методом document.write и напишем следующий код. var x = prompt("Введите число"); var positive = true; if (x < 0) { positive = false; document.write ("Вы ввели отрицательное число"); } else { document.write ("Вы ввели положительное число"); }; Теперь, если в плавающее окно введем 0, то получим результат: «Вы ввели положительное число». Что не соответствует действительности. А вот как сделать правильно не соображу. Ведь для определения у нас есть только два варианта. И для нуля здесь места нет. Не подскажете ответ? И еще такой вопрос. Точку с запятой, согласно правилам языка тоже можно не всегда ставить. Однако, опытные программисты в один голос рекомендуют ставить этот знак всегда. Это даже негласно считается почерком профессионала. На фигурные скобки это правило не распространяется?

Ответить

Admin Admin 01.08.2012 13:50:03

С одним условием проверку на ноль не сделать, нужно ещё одно. А скобки лучше ставить, хотя бы для того, чтобы самому потом не путаться.

Ответить

wwwu1 wwwu1 05.11.2012 18:06:33

В JavaScript, Оператор IF-ELSE. Не могу выполнить задание №2. Урок вроде понятен, а задание выполнить не могу. Подскажите пожалуйста.......Именно ввод типа операции не знаю как.

Ответить

Admin Admin 05.11.2012 18:29:32

В форме вводится, например, "+". Далее в IF Вы проверяете, если введённая строка равна "+", значит, это команда сложения. И аналогично с другими операциями.

Ответить

wwwu1 wwwu1 05.11.2012 18:59:05

var x = prompt ("Введите первое число"); var y = prompt ("Введите второе число"); var z = prompt ("Введите вид операции"); if (" * ") alert (x * y); if (" / ") alert (x / y); Блин, туплю не знаю как правильно

Ответить

Admin Admin 05.11.2012 19:00:42

if (z == "*") alert (x * y);

Ответить

wwwu1 wwwu1 05.11.2012 19:04:03

Спасибо )))))

Ответить

dedok41 dedok41 25.12.2013 10:53:56

Небольшое замечание, fred. Все-таки, в математике ноль принято считать положительным числом. Так что в этом примере все верно.

Ответить

Тимур Тимур 19.11.2012 16:44:43

А что делает команда или функция positive? И можно написать так?: var x = prompt("Введите число"); if (x > 0) alert ("True"); else alert("False");

Ответить

Тимур Тимур 19.11.2012 17:03:06

Все не надо. positive это же переменная)

Ответить

Тимур Тимур 19.11.2012 17:36:30

У меня теперь другой вопрос: <script> var x = prompt("Введите число или слово"); if (typeof(a)== "string") alert ("Вы ввели слово"); else alert ('Вы ввели число'); </script> По идеи, если я ввожу строковые данные, то должно показывать что я ввел слово, а если я ввел какой-то другой тип данных, то должно высвечиваться что я ввел число. Но почему то у меня все время показывает что я ввел число.

Ответить

Admin Admin 19.11.2012 17:39:32

Посмотрите, что получается: alert(typeof(a));

Ответить

Admin Admin 19.11.2012 17:03:47

Впервые слышу о такой функции в JavaScript. Как Вы написали, написать можно.

Ответить

AiLing AiLing 03.04.2013 08:34:56

Очень похоже на Turbo Pascal

Ответить

Алексей Сорокин Алексей Сорокин 27.06.2013 13:54:01

Михаил, у меня такой вопрос: Когда я прописал данную функцию, результат выводится в отдельном окне на странице, окно называется "Оповещение javascript" так и должно быть? Можно ли здесь сделать так, чтобы числа располагались ,как и в предыдущих уроках, а не в отдельном окне?

Ответить

Admin Admin 27.06.2013 18:33:30

Функция alert() и создаёт это окно. Чтобы вывести на страницу надо использовать document.write()

Ответить

Алексей Сорокин Алексей Сорокин 27.06.2013 20:56:37

Спасибо)

Ответить

Alex_Cortez Alex_Cortez 11.09.2013 16:09:01

Михаил, у меня вопрос. Вот я написал код: var a = prompt("Введите первое число:"); var b = prompt("Введите второе число:"); var c = prompt("Введите тип операции:"); if (c == 1) { add(); } function add() { var add = a + b; alert(a + " + " + b + " = " + add); } Но складываются не числа, а строки, помогите решить данную проблему.

Ответить

Admin Admin 11.09.2013 18:14:27

Так откуда же интерпретатору знать, что это за величины. Вы должны непосредственно указать что это числа. Преобразуйте их, например, через Number(a)

Ответить

Alex_Cortez Alex_Cortez 11.09.2013 20:47:41

Спасибо.

Ответить

wick wick 17.09.2013 17:30:10

Михаил, здравствуйте. вот мой код: function add(x,y) { } function sub(x,y) { } function mult(x,y) { } function division(x,y) { } var x = prompt ("Введите число 1"); var y = prompt ("Введите число 2"); var operation = prompt ("Введите операцию"); if (operation == "*") alert (x * y); if (operation == "-") alert (x - y); if (operation == "/") alert (x / y); if (operation == "+") alert (x + y); И собственно вопрос: все операции выполняются нормально, за исключением сложения, там почему то складываются строки?!

Ответить

Admin Admin 17.09.2013 19:45:30

Потому что по умолчанию под "+" подразумевается конкатенация строк, а не сложение. Нужно однозначно указать тип переменной, например, через Number(x)

Ответить

wick wick 17.09.2013 20:59:24

спасибо

Ответить

Tao Tao 22.09.2013 19:44:20

Михаил, а если нужно условие не равенства, какой символ использовать? <> пробовал не работает.

Ответить

Admin Admin 23.09.2013 20:11:07

Вот такой !=

Ответить

dedok41 dedok41 25.12.2013 11:10:23

Михаил, а вот такой вопрос: можно ли регулировать на экране монитора размер и положение окна, которое открывает функция alert(). Такое огромное окно закрывает весь экран, в то время как для вводимой информации, как правило необходимо небольшое поле.

Ответить

dedok41 dedok41 25.12.2013 11:24:48

Михаил, вдогонку в дополнение к вопросу Дмитрия от 29.10.2011. JavaScript и PHP действительно очень близки. А как в скорости выполнения операций? Поскольку первый язык браузерный, а второй серверный, не означает ли это, что блоки Javascript выполняются быстрее, чем аналогичные блоки PHP. Видимо, здесь все зависит от объема данных пересылаемых между браузером и сервером.

Ответить

tikkiwiki tikkiwiki 25.12.2013 13:40:14

Тут не очень корректно сравнивать, ведь один язык выполняется на сервере в момент формирования страницы, а другой на клиент в момент получения. Они выполняют разные задачи, на разных машинах. У них даже скорость вычисляется по разному, у одного скорость выполнения на сервере, а другого на клиенте - как такое сравнивать?

Ответить

dedok41 dedok41 26.12.2013 12:44:08

Спасибо за ответ, Александр, попутно с наступающим! С месяц назад столкнулся с громоздкими многовариантными вычислениями. Несколько сот вариантов просчитал вручную. В моей задаче увеличение размерности лишь на единицу утраивает число вариантов. И когда потребовалось обработать тысячу вариантов, пришлось написать программу. Выбрал PHP и локальный сервер Open server. Естественно и тысяча, а потом и сотни тысяч вариантов обсчитывались в считанные секунды. Но, как говорится, аппетит приходит во время еды. Когда число вариантов перевалило за миллионы и десятки миллионов, время расчетов стало ощутимым. К примеру, 10^8 или сто миллионов обсчитываются час-полтора. Впереди маячит обработка 10^9 вариантов, поэтому просматривал вариант с использованием JS. И именно не в связи с формированием страницы, а для выполнения непосредственных вычислений, и для этого в JS практически все есть. В случае локального сервера особой разницы нет, все выполняется на одном ПК. Пожалуй, все определяется не выбранным языком, а мощностью компьютера. Очевидно, внешние сервера более мощные, и логичнее использовать PHP в случае размещения сайта в сети.

Ответить

PoZaMus PoZaMus 20.03.2014 20:52:35

А почему не работает вот такой код вроде все правильно var a = prompt("Первое число"); var a = Number(a); var b = prompt("Второе число"); var b = Number(b); var n = prompt("Выберите оперяцию"); var n = Number(n); if (n == "*") alert (a * b); if (n == "-") alert (a - b); if (n == "/") alert (a / b); if (n == "+") alert (a + b);

Ответить

Eric Eric 19.09.2014 16:35:53

Когда используете функцию "Number" и присваиваете переменной значение не пишите var. У вас же уже создана эта переменная и не надо переменную "var n" приводить к числу.

Ответить

PoZaMus PoZaMus 20.03.2014 21:31:20

Javascrip 4 3-я задания а) не могу реализовать функцию printAction()

Ответить

tikkiwiki tikkiwiki 27.03.2014 11:33:00

Пишите в службу поддержки.

Ответить

Strateg Strateg 05.11.2014 19:21:02

всем привет! Михаил, или кто другой плизз, подскажите, почему вместо моего текста в алерте - крякозябры?? http://clip2net.com/s/jdWLSR кодировка "UTF-8 без BOM"

Ответить

romario_ser romario_ser 15.12.2014 15:26:10

Всем привет!нужна помощь начинающему). С чего хочу начать, есть текстовое поле -"t", в которое при вводе определённого числа, стало активно поле -"a", при другом числе было активно поле -"b". Вот мой код: <input type="text" name="t" size="5"> <input type="text" name="a" size="5" disabled> <input type="text" name="b" size="5" disabled> Не могу понять со скриптом как быть. HELP, пожалуйста подсобите)

Ответить

kostya_nad kostya_nad 01.08.2017 05:21:45

Может сейчас придираюсь, но совсем новичок-новичок, который видит свой первый язык программирования не поймёт строку "//строка". Новички не знают компенсирующих конструкций типа // или /**/

Ответить

d_ima d_ima 21.12.2018 12:54:09

По моему в красивом более примере: "var x = prompt("Введите число"); var positive = x < 0;" нужно поставить знак '>' вместо '<' или поправьте меня

Ответить

848484 848484 06.02.2019 18:10:43

да так и есть

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.