Autor Tema: Java. Uso extraño o anómalo de bucle for para repetir número indefinido CU00669B  (Leído 2606 veces)

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Buenas amigos, aquí os dejo una posible solución al ejercicio CU00669B del curso básico de programación orientada a objetos con Java.

Citar
EJERCICIO

Crea una clase con el método main donde declares una variable de tipo array de Strings que contenga los doce meses del año, en minúsculas y declarados en una sola línea. A continuación declara una variable mesSecreto de tipo String, y hazla igual a un elemento del array (por ejemplo mesSecreto = mes[9]. El programa debe pedir al usuario que adivine el mes secreto y si acierta mostrar un mensaje y si no pedir que vuelva a intentar adivinar el mes secreto.  Puedes comprobar si tu  código es correcto consultando en los foros aprenderaprogramar.com.

Un ejemplo de ejecución del programa podría ser este:

Adivine el mes secreto. Introduzca el nombre del mes en minúsculas: febrero

No ha acertado. Intente adivinarlo introduciendo otro mes: agosto

No ha acertado. Intente adivinarlo introduciendo otro mes: octubre

¡Ha acertado!


Código: [Seleccionar]

/**
 * Ejercicio CU00669B del curso de java desde cero de aprenderaprogramar.com
 * Versión 0.1
 * Realizado por Pandemia
 */

import java.util.Scanner;

public class MesesDelAnio
{
   public static void main (String [] Args){   
       String [] losMeses = {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre",
           "octubre", "noviembre", "diciembre"};
       
       String mesSecreto = losMeses[5];
       
       String adivinar = ""; //variable para que el usuario introduzca su intento
       Scanner sc = new Scanner(System.in); // El objeto Scanner guarda el valor
       
       System.out.println("Adivine cual es el mes secreto");
       System.out.println("Introduzca el mes: ");
       adivinar = sc.nextLine();
       
       for(int i = 0;! adivinar.equals(mesSecreto);i++){
           System.out.println("No has adivinado, intentalo nuevamente");
           System.out.println("ingrese el mes:");
           adivinar = sc.nextLine();
        }//Cierre del for

        System.out.println("Adivinaste que el mes secreto era " + adivinar );

   
   }//cierre del main
}//cierre de la clase

Saludos y gracias por vuestro tiempo... ;D
« Última modificación: 13 de Septiembre 2016, 10:14 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola! Aunque el programa funcione haces un uso muy extraño del bucle for. Un bucle for se usa normalmente para un número de repeticiones conocido, por ejemplo para recorrer una lista, o para repetir algo un número determinado de veces. Para repeticiones con un número no conocido a priori la convención es usar un bucle while (o do while), como está resuelto en https://www.aprenderaprogramar.com/foros/index.php?topic=2108.0 y no se recomienda usar un bucle for

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".