Repita las instrucciones: java while
Aquí hay un juego de adivinanzas para poner a prueba tu comprensión de Java. El ordenador genera un número aleatorio entre 1 y 10. El equipo le pide que adivine el número. Si no acierta, el juego continúa. Tan pronto como se adivina correctamente, el juego ha terminado. Este listado muestra el programa para jugar el juego, y la figura muestra una ronda de juego.
importación estática java.util.Scanner-importación clase java.util.Random pública java.lang.System.out-importación GuessAgain {static void main (String args []) {públicas Escáner Teclado = new Scanner (System.in) - int numGuesses = 0-int randomNumber = new Random (). nextInt (10) + 1-out.println ("************") -out.println ("Bienvenido al Juego de adivinanzas ") -out.println (" ************ ") -out.println () - out.print (" Introduzca un entero de 1 a 10: ") -INT númeroEntrada = teclado. nextInt () - numGuesses ++ -while (númeroEntrada! = randomNumber) {out.println () - out.println ("Inténtalo de nuevo ...") - out.print ("Introduzca un entero de 1 a 10:") -inputNumber = keyboard.nextInt () - numGuesses ++ -}out.print ("Usted gana después") -out.println (numGuesses + "conjeturas".) - keyboard.close () -}}
En la figura, el usuario hace cuatro conjeturas. Cada vez, el ordenador comprueba si la conjetura es correcta. Una suposición errónea genera una solicitud para volver a intentarlo. Para una suposición correcta, el usuario obtiene una entusiasta Tú ganas, junto con un recuento del número de conjeturas que él o ella hizo.
El equipo repite varias declaraciones, comprobando cada vez a través para ver si la conjetura de que el usuario es el mismo que un cierto número generado aleatoriamente. Cada vez que el usuario hace una conjetura, el equipo añade 1 a su recuento de conjeturas. Cuando el usuario hace la suposición correcta, el equipo muestra que cuenta. La figura ilustra el flujo de la acción.
Cuando se mira por encima del perfil, se ve el código que hace todo este trabajo. En el núcleo del código es una cosa que se llama un mientras declaración (también conocido como while). Reformulado en Inglés, la mientras declaración dice:
mientras que el númeroEntrada no es igual a la randomNumberkeep haciendo todas las cosas entre llaves: {}
Las cosas entre llaves (las cosas que se repite) es el código que imprime Inténtalo de nuevo y Introduzca un int. . ., obtiene un valor desde el teclado, y se suma 1 a la cuenta de conjeturas del usuario.
Cuando usted está tratando con los contadores, como numGuesses en el perfil, te volverás confunde fácilmente y ser apagado por 1 en cualquier dirección. Puede evitar este dolor de cabeza, asegurándose de que la ++ declaraciones se mantienen cerca de los estados cuyos eventos usted está contando.
Por ejemplo, en el perfil, la variable numGuesses comienza con un valor de 0. Eso es porque, cuando el programa se pone en marcha, el usuario no ha hecho ningún conjeturas. Más adelante en el programa, justo después de cada llamada a keyboard.nextInt, es un numGuesses ++ comunicado. Así es como usted lo hace - que incrementar el contador tan pronto como el usuario entra en otra suposición.
Las declaraciones en llaves se repiten, siempre y cuando númeroEntrada! = randomNumber es cierto. Cada repetición de las declaraciones en el bucle se llama iteración del bucle. En la figura, el bucle se somete a tres iteraciones. (Si usted no cree que la figura tiene exactamente tres iteraciones, contar el número de Inténtalo de nuevo estampados en la salida del programa. LA Inténtalo de nuevo aparece para cada suposición incorrecta.)
Cuando, por fin, el usuario introduce la suposición correcta, el equipo vuelve a la parte superior de la mientras declaración, se comprueba la condición entre paréntesis, y se encuentra en el doble terreno de doble negativo. El no es igual (!=) relación entre númeroEntrada y numero al azar ya no se sostiene.
En otras palabras, la mientras la condición de declaración, númeroEntrada! = randomNumber, Es falso. Porque el mientras la condición de declaración es falsa, el equipo salta más allá de la mientras bucle y continúa a los estados justo debajo de la mientras lazo. En estas dos declaraciones, las impresiones de computadora Usted gana después de 4 conjeturas.
Con el código del tipo mostrado en el perfil, la computadora nunca salta a mediados de bucle. Cuando el equipo se encuentra que númeroEntrada no es igual a numero al azar, el equipo sigue su marcha y ejecuta las cinco sentencias dentro llaves del bucle. El equipo realiza la prueba de nuevo (para ver si númeroEntrada todavía no es igual a numero al azar) Sólo después de que se ejecuta completamente las cinco sentencias en el bucle.