выполнил задание и проверяющий ответил, что избыточное преобразование к числу почти в каждом if, может его преобразовать один раз? Что он имел ввиду? ЗЫ он уехал и не успел ответить
var x = parseInt(prompt('Введите целое число в диапазоне 0 - 9'))
if (x === '') {
alert('Пустая строка');
} else if (x === null) {
alert('Вы нажали "Отмена"');
} else if (+x === 0) {
alert("Ноль");
} else if (+x === 1) {
alert("Один");
} else if (+x === 2) {
alert("Два");
} else if (+x === 3) {
alert("Три");
} else if (+x === 4) {
alert("Четыре");
} else if (+x === 5) {
alert("Пять");
} else if (+x === 6) {
alert("Шесть");
} else if (+x === 7) {
alert("Семь");
} else if (+x === 8) {
alert("Восемь");
} else if (+x === 9) {
alert("Девять");
}
else {
alert('Введите число в диапазоне')
}
JavaScript
В чем ошибка кода?
parseInt преобразует данные из prompt в целое число (в данном коде по основанию 10), поэтому в проверках ставить + переде переменной х не имеет смысла.
P.S. else if (x === null) - никогда не выполнится
P.S. else if (x === null) - никогда не выполнится
Я тебе уже несколько вариантов в прошлом собщении написал здесь у тебя ошибка сделай так и вё заработает
x = prompt('Введите целое число в диапазоне 0 - 9');
if (x == '') {
alert('Пустая строка');
} else if (x == null) {
alert('Вы нажали "Отмена"');
} else if (+x == 0) {
alert("Ноль");
} else if (+x == 1) {
alert("Один");
} else if (+x == 2) {
alert("Два");
} else if (+x == 3) {
alert("Три");
} else if (+x == 4) {
alert("Четыре");
} else if (+x == 5) {
alert("Пять");
} else if (+x == 6) {
alert("Шесть");
} else if (+x == 7) {
alert("Семь");
} else if (+x == 8) {
alert("Восемь");
} else if (+x == 9) {
alert("Девять");
}
else {
alert('Введите число в диапазоне')
}
⚤
x = prompt('Введите целое число в диапазоне 0 - 9');
if (x == '') {
alert('Пустая строка');
} else if (x == null) {
alert('Вы нажали "Отмена"');
} else if (+x == 0) {
alert("Ноль");
} else if (+x == 1) {
alert("Один");
} else if (+x == 2) {
alert("Два");
} else if (+x == 3) {
alert("Три");
} else if (+x == 4) {
alert("Четыре");
} else if (+x == 5) {
alert("Пять");
} else if (+x == 6) {
alert("Шесть");
} else if (+x == 7) {
alert("Семь");
} else if (+x == 8) {
alert("Восемь");
} else if (+x == 9) {
alert("Девять");
}
else {
alert('Введите число в диапазоне')
}
⚤
Решение:
const NUM_STR = ['Ноль', 'Один', 'Два', 'Три', 'Четыре', 'Пять', 'Шесть', 'Семь', 'Восемь', 'Девять'];
var x = prompt('Введите целое число в диапазоне 0 - 9');
switch (x) {
case '' : alert('Пустая строка'); break;
case null: alert('Вы нажали "Отмена"'); break;
default:
if (x.length === 1 && x >= '0' && x <= '9')
alert(NUM_STR[+x]);
else
alert('Введите число в диапазоне');
}
_
Ошибка всего одна: само написание данного кода его автором было ошибкой, при незнании типов данных и синтаксиса JavaScript... Когда хотят научиться, сначала изучают принципы программирования, затем язык, и только затем пишут код - порядок именно такой, НЕ НАОБОРОТ.
const NUM_STR = ['Ноль', 'Один', 'Два', 'Три', 'Четыре', 'Пять', 'Шесть', 'Семь', 'Восемь', 'Девять'];
var x = prompt('Введите целое число в диапазоне 0 - 9');
switch (x) {
case '' : alert('Пустая строка'); break;
case null: alert('Вы нажали "Отмена"'); break;
default:
if (x.length === 1 && x >= '0' && x <= '9')
alert(NUM_STR[+x]);
else
alert('Введите число в диапазоне');
}
_
Ошибка всего одна: само написание данного кода его автором было ошибкой, при незнании типов данных и синтаксиса JavaScript... Когда хотят научиться, сначала изучают принципы программирования, затем язык, и только затем пишут код - порядок именно такой, НЕ НАОБОРОТ.
А зачем вообще писать +1, +2 и т. д?
Это не нужно, пишите просто числа, уберите все "+" без исключения
Это не нужно, пишите просто числа, уберите все "+" без исключения
Бахчан Дьяров
+x так происходит преобразование типов данных
пока просто x без плюса он String
когда ставишь плюс он уже Number
ели вам всё ровно какой тип даных то программ не всё равно И не обижайтесь тогда почему что то не срабатывает вопреки здравому смыслу
⚤
пока просто x без плюса он String
когда ставишь плюс он уже Number
ели вам всё ровно какой тип даных то программ не всё равно И не обижайтесь тогда почему что то не срабатывает вопреки здравому смыслу
⚤
Похожие вопросы
- Проверьте 2 кода ((( пожалуйста и ткните носом на ошибку. В общем 1 код работает частично, а второй вообще не работает. JS
- Где я сделал ошибку в коде
- Не могу найти ошибку в коде.
- Прошу помочь с решением, исправить ошибки в коде.
- Помогите разобраться в логике кода (замыкания)
- Вопрос по стилю кода. Следует ли проверять наличие свойства в объекте если я точно знаю что оно должно там быть?
- Гляньте код пожалуйста? Он работает, но мне кажется так не пишут. Да и по default что то не хочет работать код.
- Посмотрите пожалуйста задание. Всё работает. Тем не менее, интересно услышать замечания по коду.
- Как можно улучшить код?
- Нет желаемого результата в коде.
while(!(''+prompt('Введите целое число в диапазоне 0 - 9')).replace(/^\d$/,a=>(alert("Ноль, Один, Два, Три, Четыре, Пять, Шесть, Семь, Восемь, Девять".split(',')[a]),a)).replace(/null/,a=>(alert('Вы нажали кнопку отмена!'),0)).match(/^\d$/)&&(alert('Попробуй ещё раз!'),1));
⚤