Stack Overflow em Português Asked by João Victor Teixeira on January 4, 2021
let soma
let num1
num1 = prompt("Digite um número positivo")
if(num1 < 0){
console.log("Erro você tentou fazer uma conta com número negativo")
}
else if (num1 > 0){
}
João, como o resultado do prompt é uma cadeia de caracteres (um texto), você pode usar expressões regulares para obter os números presentes. A classe de caractere "dígito" representa todos os 10 dígitos numéricos.
Para que essa expressão regular funcione da forma desejada, você precisa incluir a flag "g", pois "com este sinalizador, a pesquisa procura por todas as correspondências, já que, sem ela, apenas a primeira correspondência é retornada" (extraído do link sobre flag). Além disso, não usaremos nenhum quantificador, já que o objetivo é obter cada número individualmente.
Entendido isso, podemos aplicar a expressão regular na entrada utilizando o método match, que resulta em um vetor.
let entrada = prompt("Digite um número positivo");
if (entrada < 0) {
console.error("Você tentou fazer uma conta com número negativo")
} else {
let numeros = entrada.match(/d/g);
console.log(numeros);
}
Com o vetor contendo os números digitados, podemos percorrê-lo para somar cada número presente.
let entrada = prompt("Digite um número positivo");
if (entrada < 0) {
console.error("Você tentou fazer uma conta com número negativo")
} else {
let numeros = entrada.match(/d/g);
let soma = 0;
for(let numero of numeros) {
soma += parseInt(numero);
}
alert("A soma é igual a " + soma);
}
Perceba que usamos a função parseInt, pois os números digitados são obtidos como string. Em seguida, exibimos um alerta com o resultado do somatório.
Correct answer by Lucas Samuel on January 4, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP