Foros del Web » Programación para mayores de 30 ;) » Java »

Problema codigo java (do while)

Estas en el tema de Problema codigo java (do while) en el foro de Java en Foros del Web. Buenas, tengo este código en java @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Java: Ver original char [ ] letras = { 'S' , 's' , 'R' , 'r' ...
  #1 (permalink)  
Antiguo 08/10/2015, 03:59
 
Fecha de Ingreso: marzo-2013
Mensajes: 51
Antigüedad: 11 años, 1 mes
Puntos: 2
Problema codigo java (do while)

Buenas, tengo este código en java
Código Java:
Ver original
  1. char[] letras = {'S', 's', 'R', 'r', 'M', 'm', 'P', 'p', 'D', 'd'};
  2. Scanner sc = new Scanner(System.in);
  3.  
  4. for (int i = 0; i < letras.length; i++) {
  5.             do {
  6.                 System.out.println("Introduce operación:");
  7.                 System.out.println("--------------------");
  8.                 System.out.println("Suma (S,s)");
  9.                 System.out.println("Resta (R,r)");
  10.                 System.out.println("Producto (P,p,M,m)");
  11.                 System.out.println("Division (D,d)");
  12.                 System.out.println("--------------------");
  13.                 System.out.println("");
  14.                 operacion = sc.next().charAt(0);
  15.             }while(operacion!=letras[i]);
  16.             //Hacer algo

El caso es que da lo mismo el caracter que meta por teclado porque aunque le meta un caracter del array me pinta los system.out.println() indefinidamente y quiero saber que estoy haciendo mal.

Lo que quiero hacer es que si el caracter recogido por teclado no coincide con ninguno del array que vuelva a mostrar los sysout para pedir otro caracter, y si el caracter recogido por teclado coincide con algun caracter del array que haga otra cosa.

Gracias de antemano.
  #2 (permalink)  
Antiguo 08/10/2015, 04:13
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Problema codigo java (do while)

Cual es el sentido del for? Me lo podrías explicar?
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 08/10/2015, 04:15
 
Fecha de Ingreso: marzo-2013
Mensajes: 51
Antigüedad: 11 años, 1 mes
Puntos: 2
Respuesta: Problema codigo java (do while)

El for le uso para recorrer el array de chars, luego quiero comparar si el caracter que introduzco yo por teclado está en ese array.
  #4 (permalink)  
Antiguo 08/10/2015, 04:19
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Problema codigo java (do while)

Es decir, que independientemente de lo que introduzcan por el teclado vas a sacar como mínimo 9 veces el mensaje?

perdona pero sigo sin verle la lógica...
__________________
Aviso: No se resuelven dudas por MP!
  #5 (permalink)  
Antiguo 08/10/2015, 04:29
 
Fecha de Ingreso: marzo-2013
Mensajes: 51
Antigüedad: 11 años, 1 mes
Puntos: 2
Respuesta: Problema codigo java (do while)

No, ese es el problema, no quiero que lo muestre 9 veces. Quiero que primero muestre el mensaje, despues que compare si la letra que paso por teclado esta en el array, si no lo esta que muestre el mensaje de nuevo y así hasta que introduzca una letra que si esté en el array y cuando esto pase que haga otra cosa.

La unica forma que conozco de recorrer un array es mediante un for, de ahi que le utilice.
  #6 (permalink)  
Antiguo 08/10/2015, 04:38
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Problema codigo java (do while)

Lo que tendrías que hacer es coger papel y lápiz y escribir en pseudocódigo lo que quieres hacer. Luego ya podrás programarlo. Pero da la sensación que lo has programado directamente y que actualmente no tienes claro que es lo que se hace.

Efectivamente con el for puedes recorrer el array. La pregunta es: porque lo haces antes de mostrar el mensaje y de solicitar una tecla?
__________________
Aviso: No se resuelven dudas por MP!
  #7 (permalink)  
Antiguo 08/10/2015, 04:51
 
Fecha de Ingreso: marzo-2013
Mensajes: 51
Antigüedad: 11 años, 1 mes
Puntos: 2
Respuesta: Problema codigo java (do while)

Se que es lo que tengo que hacer.

Lo que creo que no se hacer es como recorrer el array y comparar si lo que introduzco por teclado esta en el array. Si me pudieras solucionar eso te lo agradeceria.

El problema me pide:
1-Mostrar inicialmente el mensaje y pedir una tecla (Ya he caido que esto tiene que ir fuera del for, de ahi que me pinta el mensaje 9 veces).
2-Si la tecla introducida no esta en el array, volver a mostrar el mensaje y asi sucesivamente hasta introducir una tecla que si esta en el array (esto creo que se soluciona con el do while).

El problema le tengo en comparar lo introducido con el contenido del array.
  #8 (permalink)  
Antiguo 08/10/2015, 04:59
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Problema codigo java (do while)

Cita:
Iniciado por jcastro3 Ver Mensaje
Se que es lo que tengo que hacer.

Lo que creo que no se hacer es como recorrer el array y comparar si lo que introduzco por teclado esta en el array. Si me pudieras solucionar eso te lo agradeceria.
La forma menos óptima pero más sencilla es usar una variable booleana. Recorres todo el array comparando con la tecla introducida y si la tecla existe dentro del array puedes poner la variable booleana a "true" para indicar que la has encontrado.

Es simplemente un ejemplo muy básico. Yo en "la vida real" usaría un diccionario, pero no es objetivo del ejercicio que te han puesto.
__________________
Aviso: No se resuelven dudas por MP!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:55.