Java tandis que la fonction de parenthèse de boucle


Mon code:

import java.util.*;

public class test
{

    public static void main(String[] args)
    {
        Scanner Input = new Scanner(System.in);

        System.out.println("Randomly put a ball to cup");
        int cupnumber = (int) ((Math.random()*6)+1);

        System.out.println("Guess where is it");
        int guess;
        guess = Input.nextInt();

        **while(cupnumber!=guess)
        {
            System.out.println("Guess a number");
                guess = Input.nextInt();
                guess(cupnumber,guess);
        }**
    }

    public static void guess(int cupnumber, int guess)
    {
            if(cupnumber == guess)
                System.out.print("Guess it correctly");
            else
                System.out.println("Try again");

    }

}

Je suis nouveau dans la programmation java. Dans le code ci-dessus, sans ces parenthèses {} sous la partie de boucle while, je ne peux pas ré-entrer un nombre si cupnumber n'est pas égal à deviner. Pourtant, avec ces {} parenthèse sous la boucle while, je peux ré-entrer un nombre si cupnumber n'est pas égal à deviner.

Pourquoi {} bracket fait-il une telle différence?

Quelqu'un peut-il m'aider? Merci

Author: Md. Nasir Uddin Bhuiyan, 2016-07-23

5 answers

L'instruction while exécute en permanence un bloc d'instructions la condition particulière est vraie.

Sa syntaxe peut être exprimée comme:

while (condition) {
     statement(s)
}

Dans votre code, tant que cupnumber N'EST PAS ÉGAL À guess (la condition devient vraie), tandis que la boucle passe entre crochets.

Veuillez trouver le lien Oracle ci-dessous pour plus de compréhension: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html

 0
Author: developer, 2016-07-23 08:22:26

C'est une explication assez simple. Sans crochets, il répétera la première ligne:

while(cupnumber!=guess)

    System.out.println("Guess a number");//Repeats this over and over
    guess = Input.nextInt();//These two are called outside the loop
    guess(cupnumber,guess);

, Mais comme ceci:

while(cupnumber!=guess)
{
    //Now all three lines are a part of the statement
    System.out.println("Guess a number");
    guess = Input.nextInt();
    guess(cupnumber,guess);
}

Il dit que tout faire à l'intérieur des crochets. Sans crochets, une seule ligne sera faite action avec, mais avec des crochets tout à l'intérieur de la boucle sera fait.

Ceci:

while(cupnumber!=guess)
    Single statement

Est un moyen simple de gérer les instructions if d'une ligne(ou while). Cependant, des crochets sont nécessaires pour que Java "comprenne" que l'instruction if ou while-statement fait plusieurs lignes sur une instruction true (si cupnumber != devinez alors l'instruction est vraie)

while (condition) {
     Several statements
}
 1
Author: Zoe, 2016-07-23 08:14:55

Cela se produit en raison de la portée que vous avez définie avec le {}

Si vous faites ceci:

 while(cupnumber!=guess)
     System.out.println("Guess a number");
     guess = Input.nextInt();
     guess(cupnumber,guess);

Le java exécute UNIQUEMENT cette instruction System.out.println("Guess a number"); si la condition est remplie...

Vous devez donc DÉFINIR une PORTÉE du code qui va être répété....

Il en va de même pour si-sinon, pour les boucles etc...

 0
Author: ΦXocę 웃 Пepeúpa ツ, 2016-07-23 08:19:29

Sans les crochets, la ligne suivante de l'instruction while est considérée comme while loop et les autres instructions suivantes ne font pas partie de la boucle. L'instruction suivante signifie ici l'état qui a le point-virgule.

La raison pour laquelle vous n'êtes pas en mesure d'entrer un autre nombre lorsque cupnumber n'est pas un nombre d'entrée égal, est que vous exécutez dans une boucle infinie, car while loop continuera à fonctionner jusqu'à ce que la condition fournie soit vraie.

Sans crochets c'est votre while boucle

while(cupnumber!=guess)
System.out.println("Guess a number");
 0
Author: Clement Amarnath, 2016-07-23 08:21:14
guess = Input.nextInt(); will not be called if it's not inside the bracket.

Lorsque vous utilisez une accolade, ce qu'il y a à l'intérieur est un block qui sera traité comme une seule instruction. Donc, les déclarations ci-dessous seront exécutées une par une.

System.out.println("Guess a number");
guess = Input.nextInt();
guess(cupnumber,guess);

S'il n'y a pas d'accolade, seule la première instruction peut être exécutée juste après la définition de la condition while.

Vérifiez Existe-t-il une différence dans la suppression des accolades des instructions If en java pour plus de détails. Thx. J'espère que ça aidera.

 0
Author: Gearon, 2017-05-23 12:14:46