Задать вопрос
qoober
@qoober
Начинающий програмист

Почему не работает&& в скрипте?

Не понимаю почему не работает код

Хочу подсчитать сколько раз пользователь выиграл сподряд.

код

a = prompt('Как зовут создателя Соц. сети Вконтакте?').toLowerCase();
if (a == "павел дуров" || a == "павел" || a == 'pavel' || a == 'pavel durov' && count == 3) {
alert ('Потрясающе уже три раза сподряд вы отвечаете верно!')
count++;
} else if (a == "павел дуров" || a == "павел" || a == 'pavel' || a == 'pavel durov' && count == 2) {
alert ("Поздравляем вы ответили верно два раза сподряд!")
count++;
} else if (a == "павел дуров" || a == "павел" || a == 'pavel' || a == 'pavel durov' && count == 1) {
alert('Поздравляем ответ верный.')
count++;
} else {
alert ('Ответ не верный, рекомендуем больше читать Биографии.')
}

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

весь код не влез, но думаю суть проблемы ясна.
  • Вопрос задан
  • 218 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
byte916
@byte916
Как уже подсказали, не работает из-за неправильно поставленных скобок, а еще вам лучше немного изменить проверку, без стольких ifов

a = prompt('Как зовут создателя Соц. сети Вконтакте?').toLowerCase();
if (a == "павел дуров" || a == "павел" || a == 'pavel' || a == 'pavel durov') {
	switch(count) {
		case 1: 
			alert('Поздравляем ответ верный.')
			break;
		case 2: 
			alert ("Поздравляем вы ответили верно два раза сподряд!")
			break;
		case 3: 
			alert ('Потрясающе уже три раза сподряд вы отвечаете верно!')
			break;
	}
	count++;
} else {
	alert ('Ответ не верный, рекомендуем больше читать Биографии.')
}


И вывод поздравлений лучше вывести отдельной функцией
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Для того чтобы оператор ИЛИ вернул true достаточно, чтобы выполнилось любое из условий. Когда одно из условий выполнилось, то что записано левее - не проверяется.

Но вы можете в скобки обернуть
if ( (условие1 ИЛИ условие2 ИЛИ условие3) И условие4) { . . . }
Ответ написан
@daniil14056
В скобки возьми все до && у тебя проверяется не со всем выражением а с предпоследним a == 'pavel durov' && count == 3
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы