Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Pandemia en 08 de Septiembre 2016, 22:06

Título: Java. Uso extraño o anómalo de bucle for para repetir número indefinido CU00669B
Publicado por: Pandemia en 08 de Septiembre 2016, 22:06
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
Título: Re:Java. Uso extraño o anómalo de bucle for para repetir número indefinido CU00669B
Publicado por: César Krall en 13 de Septiembre 2016, 10:15
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!