Ejercicios con estructuras de control en Java

Última actualización: septiembre 2024

En esta ocasión, te propongo algunos ejercicios básicos para practicar con las estructuras de control en Java. Si necesitas revisar el funcionamiento de estas estructuras, puedes consultar el post “Estructuras de Control en Java”.

Existen varias soluciones posibles para resolver un mismo problema, unas más eficientes que otras. Aquí podéis ver una solución posible para cada ejercicio propuesto.

Ejercicio 1: Números divisibles por 3

Escribe un programa Java que dibuje los números del 1 al 100 que sean divisibles por 3. Una posible solución sería:

public class DivisiblesPor3 {
    public static void main(String args[]) {
      for (int i=1;i<101;i++){
          if (i%3==0){
              System.out.println("El número "+i+" es divisible por 3");
          }
      }
    }
}

Ejercicio 2: Estudiante aprueba asignatura

Crea un programa que dibuje por pantalla si un estudiante ha aprobado o no la asignatura de matemáticas.

Tienes que usar las siguientes variables:

  1. notaExamen: de tipo double y que representa el 60% de la nota final.
  2. notaTrabajoGrupo: de tipo double y que representa el 40% de la nota final.
  3. ratioAsistencia: tipo Boolean que indica si el estudiante cumple con el mínimo de asistencia requerido.

Los valores de estas variables estarán hardcodeados.

Puedes usar otras variables si lo estimas oportuno.

Las condiciones para aprobar la asignatura son 2:

  1. Conseguir una media de las dos notas, igual o superior a 5, considerando los pesos de ambas notas.
  2. Cumplir con el ratio mínimo de asistencia requerido.

Una posible solución sería:

public class Aprobado {   
public static void main(String args [ ] ){ 
   double notaExamen, notaTrabajoGrupo;
   boolean ratioAsistencia;
   notaExamen = 7.0;
   notaTrabajoGrupo = 4.6;
   ratioAsistencia = true;
   double notaFinal = notaExamen *0.6 + notaTrabajoGrupo *0.4;
   if (notaFinal >=5.0 && ratioAsistencia){
       System.out.println ("Enhorabuena, has aprobado la asignatura");
        }
    else {
        System.out.println ("Lo siento, no has aprobado la asignatura. Tienes que trabajar más");
        }
    }
}

Ejercicio 3: Tablas de multiplicar del 1 al 10

Crea un programa que dibuje en la pantalla las tablas de multiplicar del 1 al 10.

Una posible solución sería:

public class TablasMultiplicar {
    public static void main(String args[]) {
        for (int i=1; i<=10;i++){
            System.out.println("*********  Tabla del "+i+"   *************");
            for (int j=1; j<=10;j++){
            System.out.println(i+" multiplicado por "+j+" es igual a "+i*j);
            }
        }
    }
}

Ejercicio 4: Introducir la password correcta

Escribe un programa Java que pida al usuario que introduzca una password numérica, de valor comprendido entre 0 y 999 (no es necesario comprobar que el valor introducido por el usuario está en dicho rango, se supone que el usuario lo hace bien).

El programa tiene almacenado el valor de la password correcta en una variable llamada key (hardcodeada).

El objetivo del usuario es introducir la password correcta, en cuyo caso el programa debe imprimir el mensaje: “acceso autorizado”.

El usuario tiene un máximo de 3 intentos para introducir la password correcta. Si el usuario falla en sus tres intentos, el programa presentará el mensaje de: “Ha excedido el número de intentos permitidos” y acaba el programa.

El máximo número de intentos permitidos lo guardamos en una variable tipo int, con su valor hardcodeado (=3).

Puedes usar las variables adicionales que estimes oportunas.

Un posible código solución sería:

import java.util.Scanner;

public class MasScanner {
    public static void main(String args[]) {
        int key=233;
        final int maxNumIntentos = 3;
        int intentos=0;
        boolean introduccionCorrecta = false;
        int contraseña;
        
        Scanner sc1= new Scanner(System.in);
        
        do {
            System.out.println("Por favor, introduce tu contraseña (0-999)");
            contraseña = sc1.nextInt();
            if (contraseña==key){
                System.out.println("acceso autorizado");
                introduccionCorrecta=true;
            }else {
                System.out.println("contraseña incorrecta");
                intentos++;
            }
            
        }while (!introduccionCorrecta && intentos<maxNumIntentos);
        if (intentos>=maxNumIntentos){
            System.out.println("Ha excedido el número de intentos permitidos");
        }
        sc1.close();
    }
}

Ejercicio 5: Tabla de multiplicar de un número

Desarrolla un programa java que pida al usuario que introduzca un número entero que este entre 1 y 9. Y dibuja por pantalla la tabla de multiplicar de dicho número.

No es necesario que el programa comprueba si el número introducido está dentro del rango admitido.

Una posible solución sería:

import java.util.Scanner;
public class ProbandoScanner {

    public static void main(String[] args) {
        Scanner sc1 = new Scanner(System.in);
        System.out.println("Por favor, introduce un numero entre 1 y 9");
        int num = sc1.nextInt();
        for (int i=1;i<10;i++){
            System.out.println(num+" x "+i+" = "+num*i);
        }
    }
}

Ejercicio 6: Acertar palabra con pista

Realiza un programa para adivinar una palabra secreta. Dicha palabra estará hardcodeada en el código. El programa pide al usuario repetidamente que introduzca una palabra hasta que acierte. A cada fallo, el programa da una pista que consiste en mostrar por pantalla la longitud de la palabra y las letras correctas hasta la primera letra incorrecta.

Un ejemplo de ejecución, para la palabra secreta: “cable” sería:

Adivina la palabra secreta:
Introduzca una palabra: casa
Pista: La palabra tiene 5 letras. Correctas: ca
Introduzca una palabra: cabra
Pista: La palabra tiene 5 letras. Correctas: cab
Introduzca una palabra: cabal
Pista: La palabra tiene 5 letras. Correctas: cab
Introduzca una palabra: cable
¡Correcto! Has adivinado la palabra secreta.

Y una posible solución:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        int longitudPalabra;
        // Palabra secreta hardcodeada
        String palabraSecreta = "cable";

        Scanner scanner = new Scanner(System.in);
        String palabraIntroducida;
        System.out.println("Adivina la palabra secreta:");
        while (true) {
            System.out.print("Introduzca una palabra: ");
            palabraIntroducida = scanner.nextLine();
            if (palabraIntroducida.equals(palabraSecreta)) {
                System.out.println("¡Correcto! Has adivinado la palabra secreta");
                break;
            } else {
                // Mostrar pista
                longitudPalabra = palabraSecreta.length();
                String pista = "Correctas: ";
                for (int i = 0; i < palabraIntroducida.length() && i < palabraSecreta.length(); i++) {
                    if (palabraIntroducida.charAt(i) == palabraSecreta.charAt(i)) {
                        pista += palabraIntroducida.charAt(i);
                    } else {
                        break;
                    }
                }
                System.out.println("Pista: La palabra tiene " + longitudPalabra + " letras. " + pista);
            }
        }
        scanner.close();
    }
}

Ejercicios extra

Puedes encontrar más ejercicios para practicar con este tema en el siguiente repositorio de GitHub.

NOTA:

Este post es parte de la colección “Java”. Puedes ver el índice de esta colección aquí.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.