elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Problemilla bucle de JAVA
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problemilla bucle de JAVA  (Leído 3,482 veces)
dennis094

Desconectado Desconectado

Mensajes: 185


Embrace your dreams, protect your honor


Ver Perfil
Problemilla bucle de JAVA
« en: 1 Marzo 2013, 23:09 pm »

Buenas,
estoy haciendo un programa formado por 3 modulos, el primero de ellos que es con el que estoy ahora mismo me pide que escriba 6 numeros separados por una "," entre ellos, y que despues los almacene en un array de tipo Int para despues imprimirlo.
Hasta ahi lo he conseguido, pero hay una condicion que dice que los numeros introducidos deben estar entre el 1 y el 49 (ambos incluidos) y que no puede haber numeros repetidos, por ejemplo:
*VALIDO* 1,43,12,21,7,9
*NO VALIDO* 1,50,24,24,12,1
¿Como podria conseguirlo? tengo un bucle con un IF pero no funciona bien, espero vuestra ayuda.
Código:
package loteriaprimitiva;

import java.util.Scanner;
import java.util.Random;

public class LoteriaPrimitiva {

    public static void main(String[] args) {
      Scanner entrada = new Scanner(System.in);
     
        String Combinacion;
        String MiCombinacion[] = new String [6];
        int MisNumeros[] = new int [6];
        int i;
       
        System.out.println("EJERCICIO 1 LAB PROGRAMACIÓN. \n");
        System.out.println("**LOTERIA PRIMITIVA** \n");

        //METODO JUGAR (PEDIR 6 NUMEROS)
             System.out.println("NOTA: *Sólo debe introducir 6 numeros separados por coma, pues solo se leerán los 6 primeros.*");
             System.out.print("Introduzca su combinación: "); 
             Combinacion = entrada.nextLine();
             // Lee el string Combinacion y se salta las "," y guarda el resultado en el array MiCombinacion.
             MiCombinacion = Combinacion.split(",");
             
             
             for (i=0;i<6;i++){
                 MisNumeros[i] = Integer.parseInt(MiCombinacion[i]);// Convierte el array de String en un array de Int
                if (MisNumeros[i] > 49  || MisNumeros[i] < 1) {
                     System.out.println(" No es un numero correcto.");
                     System.out.print("Introduzca su combinación: ");
                     Combinacion = entrada.nextLine();
                         }
             }
             
                     
             
             System.out.print("Combinación jugada: ");
             for (i=0;i<6;i++) {
                 System.out.print(MisNumeros[i]+","); 
             }
           
                   
    }
}

             
                 


En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Problemilla bucle de JAVA
« Respuesta #1 en: 2 Marzo 2013, 00:58 am »

Pues solo se me ocurre lo siguiente xD

Código
  1. /**
  2.  *
  3.  * @author Darhius929
  4.  */
  5. import java.util.Scanner;
  6. import java.util.Random;
  7.  
  8. public class LoteriaPrimitiva {
  9.  
  10.    private final int TAMANO = 6;
  11.    private final int SUBINDICE = 1;
  12.    private final int SUPERINDICE = 49;
  13.   public static void main(String args[]){
  14.       new LoteriaPrimitiva();
  15.   }
  16.  
  17.   public LoteriaPrimitiva(){
  18.       Scanner entrada = new Scanner(System.in);
  19.        String combinacion;
  20.        String miCombinacion[] = new String [TAMANO];
  21.        //int misNumeros[] = new int [TAMANO];
  22.  
  23.        System.out.println("NOTA: *Sólo debe introducir 6 numeros separados por coma, pues solo se leerán los 6 primeros.*");
  24.        System.out.print("Introduzca su combinación: ");  
  25.        combinacion = entrada.nextLine();
  26.  
  27.        miCombinacion = combinacion.split(",");
  28.        boolean esValido = false;
  29.        for(int indice=0; indice<TAMANO; indice++){
  30.            try {
  31.                int numero = Integer.parseInt(miCombinacion[indice]);
  32.                if(numero>=SUBINDICE && numero<=SUPERINDICE) {
  33.                    //System.out.println("el numero " +numero+" es valido");
  34.                    for(int indice2=0; indice2<TAMANO; indice2++) {
  35.                         try {
  36.                            int numero2 = Integer.parseInt(miCombinacion[indice2]);
  37.                            if(numero==numero2 && indice!=indice2) {
  38.                                System.out.println("Hay numeros repetidos");
  39.                                esValido=false;
  40.                                break;
  41.                            }else {
  42.                                esValido=true;
  43.                            }
  44.                         }catch(Exception ex) {
  45.                             ex.printStackTrace();
  46.                         }
  47.                    }
  48.                }else {
  49.                    System.out.println("Se encontro un numero fuera del rango");
  50.                    esValido=false;
  51.                    break;
  52.                }
  53.            }catch(Exception e) {
  54.                e.printStackTrace();
  55.            }
  56.        }
  57.        if(esValido){
  58.            System.out.println("Buena combinacion");
  59.        }
  60.   }
  61. }
  62.  
  63.  

Saludos.


En línea

abc
dennis094

Desconectado Desconectado

Mensajes: 185


Embrace your dreams, protect your honor


Ver Perfil
Re: Problemilla bucle de JAVA
« Respuesta #2 en: 9 Marzo 2013, 00:31 am »

Gracias, al final no lo hice exactamente asi, pero me ayudaste a pensar en una forma nueva, simplemente hice un DO WHILE y le agrege un par de cosillas que me faltaban.

Tengo otro problemilla...

Una vez haya introducido los 6 numeros que me piden, no puede haber ningun numero repetido, y si lo hay debo volver a introducirlos otra vez.

Mi idea es crear un bucle for que recorra el array y vaya comprobando si los numeros que he introducido estan repetidos, pero no se exactamente como hacerlo.
Espero que puedan ayudarme :D
Un saludo !
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Problemilla bucle de JAVA
« Respuesta #3 en: 9 Marzo 2013, 00:59 am »

Sí de hecho lo iba a hacer de las dos formas pero como miré que utilizabas el for pensé que tenia que ser necesario así y tambien habia pensado que se debian volver a introducir el dato.

En este caso tendrías que usar dos do while el primero es para empezar a leer los datos el segundo es para comparar si existe el valor (hacer mientras valor existe en arreglo).

Igual y más tarde te apoyo.

Saludos..
En línea

abc
dennis094

Desconectado Desconectado

Mensajes: 185


Embrace your dreams, protect your honor


Ver Perfil
Re: Problemilla bucle de JAVA
« Respuesta #4 en: 9 Marzo 2013, 01:41 am »

Esque me sale un problema, he hecho un boolean, y si encuentra algun numero repetido = error, entonces, if (error) --> vuelve a introducir numeros.
Pero solo me los pide una vez, y aunque meta otra vez datos repetidos ya los toma como validos. Entonces he pensado en otro DO WHILE, pero no funciona correctamente.. te dejo el codigo por si encuentras algun fallo ;)
*Muchas gracias por tu ayuda*
Código:
  
                   for (i=0;i<6;i++) { // Bucle para que no se repitan los numeros.
                 for (j=aux2;j<6;j++){
                 if (misNumeros[i] == misNumeros[j]){
                     error2=true;
             }
             aux2++;}  } // j=0;aux2=1
                
                 if (error2){
                     do {
                     System.out.println(" Ha repetido algun/os numeros.");
                     System.out.print("Introduzca su combinación: ");
                     combinacion = entrada.nextLine();
                     miCombinacion = combinacion.split(",");
                     for(i=0;i<6;i++){
                     misNumeros[i] = Integer.parseInt(miCombinacion[i]);
                    }
                     }
                     while (error2);
                 }
                
« Última modificación: 9 Marzo 2013, 13:03 pm por dennis094 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda (Parar bucle con dato boolean) [bucle while]
Java
Dem0ny 5 18,628 Último mensaje 17 Diciembre 2008, 17:43 pm
por Dem0ny
Bucle en vb6 ????
Programación Visual Basic
marcofbb 2 1,864 Último mensaje 28 Mayo 2010, 03:44 am
por marcofbb
Un Problemilla con Un Ejercicio(Java)
Ejercicios
YamiAlx 2 3,856 Último mensaje 25 Agosto 2010, 23:44 pm
por YamiAlx
programacion java con bucle for
Ejercicios
maryuri 2 3,269 Último mensaje 5 Septiembre 2016, 08:38 am
por Zeros1001
Ejercicio java bucle
Java
txipiron 1 2,024 Último mensaje 10 Febrero 2017, 11:40 am
por MNicolas
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines