@Rufix

Почему не работает обработка нескольких условий Javascript?

Имеется код:
const math = document.querySelector ('#math');
const answer = document.querySelector ('#answer');
const btn = document.querySelector ('#btn');
const correct = document.querySelector ('#correct');
const incorrect = document.querySelector ('#incorrect');
const percent = document.querySelector ('percent');
const start = document.querySelector ('#start');

let symbols = ['+', '-', '*', '/'];

// Генерация случайных чисел
function getRandomInt (min, max) {
	return Math.floor (Math.random () * (max - min) + min);
}

// Генерация случайного оператора
function getRandomOperator () {
	return symbols[Math.floor(Math.random () * symbols.length)];
}

// Генерация случайно примера
function generateExample () {
	let operator = getRandomOperator ();

	if ((operator = '-') || (operator = '+')) {
		var first = getRandomInt (-1000, 1000);
		var second = getRandomInt (0, 1000);
	}
	if (operator = '*') {
		var first = getRandomInt (2, 50);
		var second = getRandomInt (2, 50);
	}
	if (operator = '/') {
		do {
			var first = getRandomInt (1, 500);
			var second = getRandomInt (2, 20);
		}
		while (first % second != 0);
	}

	console.log (first + operator + second)
}

generateExample ();

В генерации случайного примера некорректно работает проверка условий на рандомно сгенерированный оператор. Дело в том, что почему-то всегда генерируется пример с оператор деления. Если я удалю последнее условие
if (operator = '/') {
		do {
			var first = getRandomInt (1, 500);
			var second = getRandomInt (2, 20);
		}
		while (first % second != 0);
	}

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

P.S пользуясь случаем, напишите пожалуйста, исходя из этого куска кода, мои ошибки в плане стилистики кода, чтобы отучать себя говнокодить. Спасибо.
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
xEpozZ
@xEpozZ
Веб-разработчик
var operator = 1;
if (operator = 2) {
    console.log('Привет, не ждал?');
}


Сравнение на равенство должно использовать два знака равно - "=="

Соответственно, в вашем коде должно быть
if (operator == '/') {
и так далее
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 23:00
5000 руб./за проект
19 апр. 2024, в 20:43
20000 руб./за проект