@gargantuadk

Что нужно сделать чтобы в случае ввода буквы и цифры (например 12a), мне не выводило сумму?

Нужно создать калькулятор, где указываешь число, а тебе выдает сумму их цифр. Проблема в том, что когда я ввожу цифры и буквы, мне сначала выдает что 'введите только цифры' а потом выдает сумму этих цифр. Как сделать так, чтобы оно не выдавало сумму в случаем ввода числа с буквой ?

let num = prompt('Введите трехзначное число');
let sum = 0;
let digit;
for ( let i = 0; i < num.length; i++){
    digit = parseInt(num[i]);
    if (digit){
        sum = sum + digit;
    } else{
        alert('Ввыдите только числа');
    }
}
alert(sum);
  • Вопрос задан
  • 123 просмотра
Решения вопроса 3
Основано на https://stackoverflow.com/questions/175739/built-i...
let num = prompt('Введите трехзначное число');
var sum = 0;
if(isNaN(num))  
   alert('Ввыдите только числа');
else{
    for ( let i = 0; i < num.length; i++)
        sum +=parseInt(num[i]);
    alert(sum);
}
Ответ написан
Комментировать
FinGanapre
@FinGanapre
Например так

let num = prompt('Введите трехзначное число');
let sum = 0;
let digit;
let valid = true; // создадим переменную для хранение валидно / не валидно
for ( let i = 0; i < num.length; i++){
    digit = parseInt(num[i]);
    if (digit){
        sum = sum + digit;
    } else{
        valid = false; // зададим значения не валидно
        alert('Ввыдите только числа');
    }
}

// проверим и выведим сумму только если ввод был валиден
valid ? alert(sum) : null; // if ( valid ) { alert(sum)  }
Ответ написан
Комментировать
Avilona
@Avilona
Можно использовать isNaN() либо typeof для проверки того что вводится в инпут
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы