Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/09/2014, 11:21
Avatar de Hyemin
Hyemin
 
Fecha de Ingreso: agosto-2014
Mensajes: 147
Antigüedad: 10 años, 7 meses
Puntos: 0
Aprendiendo JAVA desde cero - Error con bucle while

Buenos dias, recien estoy aprendiendo programación orientada a objetos y estoy con un manual de Java.

Estoy tratando de entender a medida que leo y practico los ejemplos del texto y me encontre con algo que en "teoria" esta bien (al menos esta igual que en el ejemplo) pero que no parece funcionar como debería-



Cabecera y definiciones
Código:
package calcu;
import java.util.*;

public class Calcu {

 
    public static void main(String[] args) {
        
        int max = Integer.MIN_VALUE; 
        int dato;
        boolean hubo =false;
        String resp;
        Scanner input = new Scanner(System.in);
Ahora paso a pedir datos en la pantalla y espero la respuesta

Código:
       
        System.out.println("Quiere ingresar algo?");
        resp = input.nextLine();
Evaluo si la respuesta es "S", mientras resp sea igual a S entonces ejecuto el bucle, el cual pide un dato numerico, compara si dato > max y lo asigna a la variable dato.

Luego pregunta "maas datos?" y deberia leer nuevamente la siguiente entrada del usuario para volver a evaluar si resp es igual a S para volver a ejecutar el bucle o en caso contrario mostrar el valor.

Código:
      
        while (resp.equals("S")){
            hubo = true;
            System.out.println("Ingrese un dato");
            dato = input.nextInt();
            if (dato > max) {
                max = dato;
            }
            System.out.println("mas datos?");
            resp = input.nextLine();
            
        }
 
        if (hubo) {
            System.out.println("Maximo vale" + max);
            
        } else {
            System.out.println("No hubo datos");
        }
        
        input.close();
    }
    
}
El programa se ejecuta pero solo pide el dato una vez y muestra el valor

Cita:

run:
Quiere ingresar algo?
S
Ingrese un dato
5
mas datos?
Maximo vale5
BUILD SUCCESSFUL (total time: 5 seconds)
Seguramente es una tontería pero le estoy dando vueltas hace un rato, soy muy novato en programacion y es la primera vez que me pongo a aprender Java