Java - Uso de ciclo while

 
Vista:
Imágen de perfil de Henry
Val: 16
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Uso de ciclo while

Publicado por Henry (7 intervenciones) el 27/03/2020 02:06:52
Buenas noches compañeros, me surgio una cuestion que me gustaria me ayudaran a resolver.
Tengo un ejercicio donde estoy usando solo ciclo while y for (principalmente while).

"En un supermercado un cajero captura los precios de los artículos que los clientes compran e indica a cada
cliente cual es el monto de lo que deben pagar. Al final del día le indica a su supervisor cuanto fue lo que
cobro en total a todos los clientes que pasaron por su caja."


Resulta que pues ya tengo un borrador de como seria el ejercicio, pero lo que me surge ahorita es saber si hay alguna de utilizar el while como do while. No quisiera utilizar do while aun, ya que hasta este ejercicio deberia solo utilizar while (que es el tema que estoy viendo en estos momentos) y ciclo for.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public static void ejercicioVeintetres() throws IOException{
    InputStreamReader teclado = new InputStreamReader(System.in);
    BufferedReader lector = new BufferedReader(teclado);
    int i=1;
    double val4=0, val5=0;
        System.out.println("Cajero captura precio de productos que clientes quieren pagar");
        System.out.println("Al final indica a su supervisor cuanto cobro en total durante su turno");
        System.out.println("");
 
        System.out.println("Cuantos clientes atendio hoy?");
        int val1=Integer.parseInt(lector.readLine());
 
        while(i<=val1){
            System.out.println("Cuantos productos tiene el cliente numero: " + i);
            int val2=Integer.parseInt(lector.readLine());
 
            for(int n=1; n<=val2; n++){
                System.out.println("Ingrese precio de producto num: " + n);
                double val3=Double.parseDouble(lector.readLine());
                val4+=val3;
            }
 
            val5+=val4;
            System.out.println("Total a pagar es: $" + val4);
            i++;
        }
        System.out.println("Total cobrado en caja fue $" + val5);
    }

Mi problema es solo justamente como indicar al ejercicio que voy a seguir recibiendo clientes aunque no declare a cuantos clientes exactamente cobrare. No se si me explique bien.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Uso de ciclo while

Publicado por Kabuto (1381 intervenciones) el 27/03/2020 17:02:01
A ver, si lo he entendido...

Tú ahora mismo introduces una cantidad fija de compras porque previamente se pregunta al usuario cuántas se van a introducir:

1
2
3
4
5
6
System.out.println("Cuantos clientes atendio hoy?");
        int val1=Integer.parseInt(lector.readLine());
 
        while(i<=val1){
              ......
              ......

Y lo que quieres es NO establecer una cantidad fija. ¿Cierto?
Bueno, en cualquier caso, el while necesita una condición para iterarse una y otra vez y hay que proporcionársela.
Si no queremos darle unas iteraciones prefijadas, podemos hacer que sea el usuario quién decida cuando poner fin a la introducción de datos.

Al final de la entrada de datos se le puede preguntar si desea continuar, y según la respuesta, ponemos fin al bucle o no.
Algo como esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public static void ejercicioVeintetres() throws IOException{
    InputStreamReader teclado = new InputStreamReader(System.in);
    BufferedReader lector = new BufferedReader(teclado);
    int i=1;
    double val4=0, val5=0;
        System.out.println("Cajero captura precio de productos que clientes quieren pagar");
        System.out.println("Al final indica a su supervisor cuanto cobro en total durante su turno");
        System.out.println("");
 
        //System.out.println("Cuantos clientes atendio hoy?");
        //int val1=Integer.parseInt(lector.readLine());
 
        String continuar = "s"; 
        while(continuar.equals("s")){
            System.out.println("Cuantos productos tiene el cliente numero: " + i);
            int val2=Integer.parseInt(lector.readLine());
 
            for(int n=1; n<=val2; n++){
                System.out.println("Ingrese precio de producto num: " + n);
                double val3=Double.parseDouble(lector.readLine());
                val4+=val3;
            }
 
            val5+=val4;
            System.out.println("Total a pagar es: $" + val4);
            i++;
 
            System.out.print("¿Desea continuar?[s/n]: ");
            continuar = lector.readLine().toLowerCase();
        }
        System.out.println("Total cobrado en caja fue $" + val5);
    }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
Imágen de perfil de Henry
Val: 16
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Uso de ciclo while

Publicado por Henry (7 intervenciones) el 28/03/2020 04:16:35
Compañero me sirvio bastante esta resolución, poco a poco voy aprendiendo, thanks!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar