Programa que calcule la tabla de multiplicar para todos los números menores o iguales N en JAVA

león:

¿Cómo se escribe un programa que calcule la tabla de multiplicar para todos los números menores o iguales N. Nótese que N es un número entero lee del usuario.

El programa va a hacer en varias ocasiones que hasta que el usuario introduce -1en JAVA .

No sé si debo utilizar bucles anidados o un método para esto, pero escribí el siguiente código incompleto, que me está dando un bucle infinito

public static void main(String[] args) {
    int N ;
    System.out.println("Enter N: " );
    N = in.nextInt();

    while ( N != -1) {
        for(int i = 1; i <= N; ++i)
        {
            for (int c = 1; c <= 10; ++c)  
                System.out.println(N + "*" + c + " = " + (N*c));
        }
    }
}

Quiero una salida como esta:

Enter an integer to print it's multiplication table, -1 to
    exit
    2
    Multiplication table of 1
    1*1 = 1, 1*2 = 2, 1*3 = 3, 1*4 = 4, 1*5 = 5, 1*6 = 6, 1*7 =
    7, 1*8 = 8, 1*9 = 9, 1*10 = 10,
    Multiplication table of 2
    2*1 = 2, 2*2 = 4, 2*3 = 6, 2*4 = 8, 2*5 = 10, 2*6 = 12, 2*7
    = 14, 2*8 = 16, 2*9 = 18, 2*10 = 20, 
    Enter an integer to print it's multiplication table, -1 to
    exit  
    -1
Sunny Patel:

Su código se ejecuta en un bucle infinito, porque Nno cambia en el exterior for-loop.

Se puede colocar en el interior del símbolo del bucle, y el cambio a un do-whilebucle para garantizar la ejecución de al menos 1; o ninguno si el usuario introduce un número menor que 1 (debido a la exterior for-loop).

También faltaban referencia al escáner para capturar la entrada.

Por último, se olvidó de usar ien lugar de Nen la salida, de lo contrario la salida interior se repetirá los mismos valores cada vez.

import java.util.Scanner;                              // Import Scanner
public static void main(String[] args) {
    int N;
    Scanner in = new Scanner(System.in);               // Missing Scanner
    do {                                               // Changed to do-while loop
        System.out.println("Enter N: " );
        N = in.nextInt();                              // Prompt user for N.
        for(int i = 1; i <= N; ++i)
        {
            for (int c = 1; c <= 10; ++c)
                System.out.println(i + "*" + c + " = " + (i*c)); // Use i instead of N
        }
    } while ( N != -1);
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=282543&siteId=1
Recomendado
Clasificación