7
respuestas

Usuario interactuando con el programa; con while funciona con for no

Hola, quise ir más alla con el ejercicio, programando para que sea el usuario el que escriba que número de tabla desea capturar con el while si cumple el programa inclusive con números más grandes que los utilizados en la primaria.

Pero cuando quise hacer lo mismo con el for, no me lo permite, me despliega la alerta donde se indica que se capture el numero a calcular varias veces y al final me presenta un listado de los números que se digitaron pero nada de cálculo alguno.

Me gustaría recibir alguna retroalimentación al respecto, gracias de antemano

Una disculpa , seguí con el curso y no me percate de las respuestas aqui el código:

<meta charset="UTF-8">

<h1>PROGRAMA PARA CALCULAR LAS TABLAS DE MULTIPLICAR</h1>


<script>

function saltarlinea() {

    document.write("<br>");
    document.write("<br>");
    document.write("<hr>");


}
function  imprimir(mensaje) {

    document.write("<big>" + mensaje + "</big>");
    saltarlinea();
}
var multiplicador = 1
var numeroTabla = parseInt(prompt("Ingresa el número de la tabla que quieras calcular"))

imprimir("WHILE")

    while(multiplicador <=10) {

        //imprimir(numeroTabla + " X " + multiplicador + " es igual a: " numeroTabla * multiplicador);
        imprimir(numeroTabla * multiplicador);
        multiplicador++;
    }

//imprimir("FOR")    

//for(var multiplicador = 1;numeroTabla = parseInt(prompt("Ingresa el número de la tabla que quieras calcular")); multiplicador<= 10,multiplicador + 1){

//    imprimir (numeroTabla * multiplicador);
//}

</script>
7 respuestas

no esta mal tu idea, ¿podrías colocar el código para ver como lo realizas y podamos darte una mejor realimentación?

Hola, si podrias colocar tu codigo y el error serial mas facil de poder ayudarte.

Asi sería con FOR y que el usuario ingrese la tabla:

<script>
    let tabla = parseInt(prompt("Ingrese el número de la tabla de multiplicar que desea listar (2-9):"));

for(let i=0; i<=10;i++){
    let calculo = i * tabla;
    document.write(i + " x "+tabla+" = " + calculo+"<br />");
    }
</script>

Así sería con WHILE:

<script>
    let tabla = parseInt(prompt("Ingrese el número de la tabla de multiplicar que desea listar (2-9):"));

    let contador = 1;

    while(contador <= 10){
        let calculo = contador * tabla;
        document.write(contador + " x "+tabla+" = " + calculo+"<br />");
        contador++;
    }

</script>

Espero haber despejado tu duda.

@Nicolas Alberto

Excelente yo hice una pequeña modificación, ahora solo estoy intentando, diferencias un poco más entre rutinas.

<meta charset="UTF-8">

<h1>TABLA DE MULTIPLICAR</h1>
<br>

<script>

    //Esta funcion general los saltos de Línea
    function saltarLinea() {
        document.write("<hr>")
        document.write("<br>");
    }


    //Esta funcion imprime el Texto en pantalla.
    function imprimir(frase){

        document.write("<big><center>" + frase + "</center></big>");
        saltarLinea();

    }

    var multiplicador = 1;
    var tabla = parseInt(prompt("Que tabla deseas calcular"));



    imprimir ("Rutina While");

    while (multiplicador <= 10) {

        imprimir(tabla + " x " + multiplicador + " = " + (tabla * multiplicador));
        multiplicador = multiplicador + 1;
    }


    imprimir ("Rutina FOR");

    for(var multiplicador = 1; multiplicador <= 10; multiplicador ++){

        imprimir(tabla + " x " + multiplicador + " = " + (tabla * multiplicador));
    }

</script>

Antes de ver la solución del profesor, también quise ir más allá e intentarlo solo. Lo hice un poco diferente, mi idea es que el usuario digite el número de la tabla que quiera ver y un número límite para que se multiplique hasta ese número ingresado. Lo hice con While y con For. Nada más dejaré la parte del código sabiendo que las funciones saltarLinea() e imprimir() ya existen:

var numeroTabla = parseInt(prompt("Digite el número de la tabla que quiere hacer"));
var limite = parseInt(prompt("Escriba el número límite de multiplicación"));
var contador = 1;

imprimir("Esto es con While");

while(contador <=limite) {

imprimir(numeroTabla + "*" + contador + "=" + numeroTabla*contador);
contador = contador +1;

}

imprimir("Esto es con FOR");

for(var contador = 1; contador <=limite; contador = contador +1 ){

    imprimir(numeroTabla + "x" + contador + "=" + numeroTabla*contador);

}

Ahora seguiré viendo el video para mejorar el código :)

Hola, probablemente estes colocando el prompt dentro de los {} de for, por eso te pide ingresar el número. Recuerda que dentro de los {} se coloca la acción que quieres ejecutar cuando se cumple la condición.

Gracias a todos sus observaciones me ayudaron a darme cuenta del error en efecto Gabriel puse el prompt como parte de for, ya lo corregi (me di cuenta que desplegaba el mensaje de numero de tabla varias veces y no mostraba nada mas

mi codigo quedo ya corregido y corriendo de la siguiente forma:

<meta charset="UTF-8">

<h1>PROGRAMA PARA CALCULAR LAS TABLAS DE MULTIPLICAR</h1>

<script>

function saltarlinea() {
    document.write("<br>");
    document.write("<br>");
    document.write("<hr>");

}

function  imprimir(mensaje) {
    document.write("<big>" + mensaje + "</big>");
    saltarlinea();
}

var multiplicador = 1
var numeroTabla = parseInt(prompt("Ingresa el número de la tabla que quieras calcular"))

imprimir("WHILE")

    while(multiplicador <=10) {
                multiplicador++;
    }

imprimir("FOR")    

for(var multiplicador = 1; multiplicador<= 10;multiplicador ++){
    imprimir (numeroTabla * multiplicador);
}

</script>