Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   короткая запись if else, else if (https://javascript.ru/forum/misc/25645-korotkaya-zapis-if-else-else-if.html)

alexben 11.02.2012 18:55

короткая запись if else, else if
 
допустим имеем такой код (написал от балды):

var isAdmin = prompt('вы Админ?','введите пароль');
var password = qwerty;

if  (isAdmin == password) {
	alert('пароль правильный');

} else if (isAdmin == null) {
	alert('Вы нажали отмену (проверка NULL)');

} else {
	alert('пароль не правильный');
}


как записать короче.. ?
p.s. с JS изучаю 3 день, в php знаю как записать, тут не катит, либо я чтото не-так делаю(

Mахmахmахimus 11.02.2012 18:58

http://javascript.ru/switch

а если еще короче то
alert ( 
          (isAdmin == password)?  'правильный пароль':
                     (isAdmin == null)? 'Вы нажали отмену (проверка NULL)':
                               'пароль не правильный'
       )

alexben 11.02.2012 19:01

причем тут свич?!
речь веду о конструкции else if / if else

Bebarr Swallow 11.02.2012 19:04

var isAdmin=prompt("вы Админ?","введите пароль")
var password="qwerty"

var text=isAdmin==password?"пароль правильный":isAdmin==null?"Вы нажали отмену (проверка NULL)":"пароль не правильный"

alert(text)​

Mахmахmахimus 11.02.2012 19:05

Цитата:

Сообщение от alexben
причем тут свич?!

ты глупый что ли?

alexben 11.02.2012 19:06

спасибо всем. Разобрался
Mахmахmахimus,
зачем обзываться?

Mахmахmахimus 11.02.2012 19:07

Цитата:

Сообщение от alexben
это е есть краткая запись else if - верно же?

почти, только она работает не с инструкциями и выражениями, а ТОЛЬКО с выражениями.

инструкция
{a+3;
b = 3+4;}

выражение
b = 3+4;

при том условие не обязательно брать в скобки, просто так принято для красоты.

true ? вернет это если до вопроса правда : вернет это если до вопроса неправда

Mахmахmахimus 11.02.2012 19:09

Цитата:

Сообщение от alexben
зачем обзываться?

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

alexben 11.02.2012 19:10

Цитата:

Сообщение от Mахmахmахimus (Сообщение 156790)
почти, только она работает не с инструкциями и выражениями, а ТОЛЬКО с выражениями.

ну у вас она получилась не рабочая

Mахmахmахimus 11.02.2012 19:17

Цитата:

Сообщение от alexben
ну у вас она получилась не рабочая

печально конечно...

var isAdmin = prompt('вы Админ?','введите пароль');
var password = "qwerty";

switch  (isAdmin) {
	case password:
		alert('пароль правильный');
	break

	case null:
		alert('Вы нажали отмену (проверка NULL)');
	break

	 default:
	 	alert('пароль не правильный');
}

sotik 18.06.2015 07:43

Здравствуйте.
Это все конечно очень интересно, но как осуществить короткую запись вот здесь?
var rew = 5;
if(rew == 2 || 5)? alert('ok');

Понимаю что я написал код не верно, оно и не работает.
То есть нужно, чтоб сообщение выводилось, если переменная равна 2 или 5.

tsigel 18.06.2015 08:16

var rew = 5;
if(rew == 2 || rew == 5) alert('ok');

sotik 19.06.2015 00:30

) Спасибо конечно, но вот хотелось бы оригинальную запись при помощи операнда "?:"

Decode 19.06.2015 01:19

var rew = 5;
(rew == 2 || rew == 5) ? alert('ok') : alert('no');

tsigel 19.06.2015 09:31

var rew = 5;
alert((rew == 2 || rew == 5) ? 'ok' : 'no');

ruslan_mart 19.06.2015 09:55

Скобки не нужны:

var rew = 2;
alert(rew == 2 || rew == 5 ? 'ok' : 'no');

tsigel 19.06.2015 10:06

Ruslan_xDD,
Пробелы тоже можно убрать XD
var rew=2;
alert(rew==2||rew==5?'ok':'no');

ruslan_mart 19.06.2015 15:17

tsigel, :p :D

rew=2;
alert(rew==2|rew==5?'ok':'no');

tsigel 19.06.2015 15:18

:lol: 3 пробела можно убрать) Ну и перенос строки)

KosBeg 19.06.2015 15:20

вы все как всегда на позитиве :D

sotik 20.06.2015 14:32

Спасибо всем.
В принципе тут сравниваются два вероятных числа, а если бы их было больше, то пришлось бы регулярные выражения использзовать или можно как-то через запятую их перечислить? )
var rew = 5;
alert(rew == 2 || 5 ? 'ok' : 'no'); // вот так
alert(rew == 2 , 5 ? 'ok' : 'no'); // или вот так

ruslan_mart 20.06.2015 14:38

var rew = 5;
alert( [1, 5, 6, 20, 78, 300].indexOf(rew) + 1 ? 'ok' : 'no' );


var rew = 5;
alert( ~[1, 5, 6, 20, 78, 300].indexOf(rew) ? 'ok' : 'no' );


var rew = 5;
alert( new Set([1, 5, 6, 20, 78, 300]).has(rew) ? 'ok' : 'no' );

sotik 20.06.2015 14:52

Цитата:

Сообщение от Ruslan_xDD (Сообщение 375802)
var rew = 5;
alert( [1, 5, 6, 20, 78, 300].indexOf(rew) + 1 ? 'ok' : 'no' );


var rew = 5;
alert( ~[1, 5, 6, 20, 78, 300].indexOf(rew) ? 'ok' : 'no' );


var rew = 5;
alert( new Set([1, 5, 6, 20, 78, 300]).has(rew) ? 'ok' : 'no' );


Сильно!
В скайп написал, может еще и по питону поможете )

ruslan_mart 20.06.2015 20:48

sotik, я с питоном не знаком. :no:


Часовой пояс GMT +3, время: 15:06.