Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2017, 15:48
Новичок на форуме
Отправить личное сообщение для frdmHckr Посмотреть профиль Найти все сообщения от frdmHckr
 
Регистрация: 08.08.2017
Сообщений: 1

Проблема с циклом While!
Здравствуйте! Я тут новенький. Помогите с решением данной проблемы:
После ввода букв, например, или цифр, которые не предусмотрены в условии, после того, как алерт мне дал знать, что я ввожу не верное значение для продолжения, даже если ввести 1, что в условии, то всё равно алерт говорит, шо "Неизвестный номер операции!"
Кажется, тут совсем глупая ошибка, но всё же, помогите!
<meta charset="utf-8">
<script>
	var Num = parseInt(prompt("Здравствуйте! Это конвертер валют! Чтобы перевести рубли в доллары/евро, введите 1; чтобы доллары в рубли/евро, введите 2; чтобы евро в рубли/доллары, введите 3"));

	while (Num != 1 || Num != 2 || Num != 3) {
		alert("Неизвестый номер операции!");
		Num = parseInt(prompt("Попробуйте ещё раз! Чтобы перевести рубли в доллары/евро, введите 1; чтобы доллары в рубли/евро, введите 2; чтобы евро в рубли/доллары, введите 3"));
	}

	if (Num == 1) {
		var doll = 60;
		var eur = 70;

		var rub = parseFloat(prompt("Введите сумму (₽), которую нужно перевести в доллары/евро"));

		while (isNaN(rub)) {
			alert("Вы ввели не число, попробуйте ещё раз!");
			rub = parseFloat(prompt("Введите сумму (₽), которую нужно перевести в доллары/евро"));
		}
		alert(rub + "₽ = " + ((rub / doll).toFixed(2)) + "$ и " + ((rub / eur).toFixed(2)) + "€");
	}

	if (Num == 2) {
		var rub = 60;
		var eur = 0.85;

		var doll = parseFloat(prompt("Введите сумму ($), которую нужно перевести в рубли/евро"));

		while (isNaN(doll)) {
			alert("Вы ввели не число, попробуйте ещё раз!");
			doll = parseFloat(prompt("Введите сумму ($), которую нужно перевести в рубли/евро"));
		}
		alert(doll + "$ = " + ((doll * rub).toFixed(2)) + "₽ и " + ((doll * eur).toFixed(2)) + "€");
	}

	if (Num == 3) {
		var rub = 70;
		var doll = 1.18;

		var eur = parseFloat(prompt("Введите сумму (€), которую нужно перевести в рубли/доллары"));

		while (isNaN(eur)) {
			alert("Вы ввели не число, попробуйте ещё раз!");
			eur = parseFloat(prompt("Введите сумму (€), которую нужно перевести в рубли/доллары"));
		}
		alert(eur + "€ = " + ((eur * rub).toFixed(2)) + "₽ и " + ((eur * doll).toFixed(2)) + "$");
	}
</script>

Последний раз редактировалось frdmHckr, 14.08.2017 в 20:10.
Ответить с цитированием
  #2 (permalink)  
Старый 08.08.2017, 16:40
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,210

frdmHckr, начнем с того, что у тебя плохой алгоритм... У тебя много повторяющихся кусков, такого быть не должно.

Так же начинай учиться тестировать свой код. Если ты сомневаешься в условии цикла - выводи его на экран или консоль, дабы понять с чем ты имеешь дело.
Ответить с цитированием
  #3 (permalink)  
Старый 08.08.2017, 16:43
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,210

frdmHckr, так же есть циклы с постусловием...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рекурсией и циклом (можно ли упростить?) BelkinV Общие вопросы Javascript 8 03.04.2014 16:29
Проблема с радио кнопками px379 Общие вопросы Javascript 8 29.07.2013 09:30
проблема с циклом mAstAk4 Events/DOM/Window 3 06.12.2010 17:47
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47