una - Asignación de tarea usando bucles para contar(Java)
reloj alarma java (5)
Cambio
while (i < 4) {
i = userNum - 1;
System.out.print(userNum + " ");
}
a algo así como (ya que quiere 1
a userNum
, o 4
en este caso)
while (i < userNum) {
System.out.printf("%d ", ++i); // <-- since you want to start at 1.
}
como se restablece i
al valor inicial menos 1 en cada iteración (por lo tanto, un ciclo infinito).
La tarea es ...
Escribe un ciclo while que imprima 1 en
userNum
, usando la variablei
. Siga cada número (incluso el último) por un espacio. Supongamos queuserNum
es positivo.userNum = 4
:userNum = 4
impresiones:1 2 3 4
Esto es lo que tengo:
int userNum = 0;
int i = 0;
userNum = 4; // Assume positive
while (i < 4) {
i = userNum - 1;
System.out.print(userNum + " ");
}
System.out.println("");
Sigo recibiendo un error de bucle infinito. Cualquier ayuda es muy apreciada. Soy nuevo en Java y todavía estoy tratando de resolverlo.
Deberías usar i ++
while (i < userNum) {
i++;
System.out.print(i + " ");
}
Entonces, el problema es la forma en que te manejas. Por favor vea el código a continuación.
int userNum = 0;
int i = 0;
userNum = 4; // Assume positive
while (i < 4) {
//i = userNum - 1; // this line will result in i equals 4 minus 1 which equal 3 infinitely
i++; // this means after each iteration of the this line add 1 to i
System.out.print(i + " ");
}
System.out.println("");
Pruebe el siguiente código, creo que esto resolvería su problema.
int i = 0;
int userNum = 4;
while (i < userNum) {
i++; //keep incrementing i till its less than userNum
System.out.print(i + " "); //keep printing i till its less than userNum
}
//come out of the loop when i becomes greater than userNum
usted es decreciente antes de imprimir primero i = 0 verificación de condición i <4 es verdadero, entonces i = i-1 que es igual a -1 e imprima de nuevo i <4 decrementa de nuevo que era -1 ahora -2, por eso es que está obteniendo infinito lazo
System.out.println(i + " ");
i++;