Java - bucle do-while

 
Vista:

bucle do-while

Publicado por Alison (5 intervenciones) el 10/04/2020 22:25:09
¿podrían ayudarme con el bucle do-while?, no tengo ningún error al compilar, pero no me deja salir del bucle. El número de trabajadores te lo debe proporcionar el usuario. Ese es el código en mi clase main.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.Scanner;
 
public class PNomina
{
   public static void main (String [] args) {
       Nomina nomina =new Nomina();
       Scanner empresa =new Scanner(System.in);
       long veces=0;
       int i = 1, contador;
 
       System.out.println ("¿Cuántos trabajadores hay en tu empresa?");
       contador= empresa.nextInt();
 
       do{
          System.out.println ("Ingresa sueldo neto del trabajador"+(veces+1)+ ": ");
          nomina.calcularNomina (empresa.nextLong());
          veces = veces + 1;
 
          }while(i<=contador);
 
 
       System.out.printf ("La nómina es: " + nomina.getSueldo());
     }
}
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 Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

bucle do-while

Publicado por Rodrigo (623 intervenciones) el 10/04/2020 22:41:21
Sugiero cambiar

1
}while(i<=contador);

por

1
}while(veces<=contador);
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

bucle do-while

Publicado por Alison (5 intervenciones) el 10/04/2020 23:07:11
Ya lo intenté, pero no funcionó.
En ese caso yo le puse 3 trabajadores, pero aún me cuenta el trabajador no. 4
Y si le pongo (veces ==contador) continúa con el bucle y no sale nunca. Supongo que es porque el bucle do-while evalúa primero la condición, no? y que en ese caso el usuario de debe poner como valor "0" para que dé correctamente la nómina.

¿Cuántos trabajadores hay en tu empresa?
3
Ingresa sueldo neto del trabajador1:
4000
Ingresa sueldo neto del trabajador2:
5000
Ingresa sueldo neto del trabajador3:
3200
Ingresa sueldo neto del trabajador4:
5000
La nómina es: 17200
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
sin imagen de perfil

bucle do-while

Publicado por anonymous (1 intervención) el 10/04/2020 22:47:59
Fíjate en la condición del bucle:

1
while(i<=contador)

La variable contador la declaras fuera del bucle y le asignas un valor mediante la entrada del usuario con Scanner(). Si le das un valor diferente de 1 nunca saldrá del bucle.
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

bucle do-while

Publicado por Alison (5 intervenciones) el 10/04/2020 23:04:17
es que si no le pongo un valor numérico me da un error de compilación, y si le pongo 0 no entra al bucle
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
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

bucle do-while

Publicado por Billy Joel (875 intervenciones) el 11/04/2020 00:14:59
Prueba así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Nomina nomina = new Nomina();
Scanner empresa = new Scanner(System.in);
long veces = 0;
int contador;
 
System.out.println("¿Cuántos trabajadores hay en tu empresa?");
contador = empresa.nextInt();
 
for (int i = 0; i < contador; i++) {
    System.out.println("Ingresa sueldo neto del trabajador" + (i + 1) + ": ");
    nomina.calcularNomina(empresa.nextLong());
    veces = veces + 1;
}
 
System.out.printf("La nómina es: " + nomina.getSueldo());
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