Incompréhension lors de l’exécution d'une boucle "while"

Résolu
Shinobi55 Messages postés 23 Statut Membre -  
 DarthLighter -
Bonjour,

Je rencontre actuellement un problème lors de l'éxecution de mon code javascript.
Je m'explique il s'agit d'un code pour un jeu de "chiffre mystère" qui invite l'utilisateur a deviner un chiffre (basique)
Voici le code :
fancy


Or lors de l'éxecution, la boucle ne se répète pas lorsque le premier chiffre saisi est supérieur et que le suivant est inférieur.

Voici un screen de mon problème :


On voit que le programme ne nous demande pas de retaper un nouveau chiffre or dans TOUS les autres cas il n'y a aucun problème.

Voilà, j'éspère que quelqu'un pourra m'éclairer :-).

Merci.

Configuration: Windows / Chrome 75.0.3770.142

3 réponses

  1. Shinobi55 Messages postés 23 Statut Membre 1
     
    Voici le code en question :
    package test;
    
    import java.util.Scanner;
    
    public class test {
    
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		System.out.print("Entrez un nombre et essayez de trouver le bon : ");
    		int sc2 = sc.nextInt();
    		int n = 128;
    		while (sc2 > n) {
    			System.out.println("C'est moins");
    			System.out.print("Recommencez svp : ");
    			sc2 = sc.nextInt();
    		}
    		if (sc2 == n) {
    			System.out.print("Trouvé !");
    			sc.nextInt();
    		}
    		while (sc2 < n) {
    			System.out.println("C'est plus");
    			System.out.println("Recommencez svp : ");
    			sc2 = sc.nextInt();
    		}
    		}
    		}	


    Et l'erreur est la suivante :

    Entrez un nombre et essayez de trouver le bon : 120
    C'est plus
    Recommencez svp : 130
    0
    1. DarthLighter
       
      Bonjour Shinobi55,

      Essaye comme ceci :

      package test;
      
      import java.util.Scanner;
      
      public class test {
      
      	public static void main(String[] args) {
      		Scanner sc = new Scanner(System.in);
      		System.out.print("Entrez un nombre et essayez de trouver le bon : ");
      		int sc2 = sc.nextInt();
      		int n = 128;
      
      		while (sc2!=n){
      			if(sc2 > n){
      				System.out.println("C'est moins");
      				System.out.print("Recommencez svp : ");
      			}
      			if(sc2 < n){
      				System.out.println("C'est plus");
      				System.out.println("Recommencez svp : ");
      			}
      			sc2 = sc.nextInt();
      		}
      		if(sc2==n){
      			System.out.print("Trouvé !");
      		}
      	}
      }
      


      Cdt.
      0
    2. Shinobi55 Messages postés 23 Statut Membre 1
       
      Bonjour,

      Effectivement, il est plus simple de procéder comme ceci, je vais modifier mon code, merci de votre réponse très rapide !

      Cdt.
      0
    3. DarthLighter
       
      Avec plaisir :)

      Cdt.
      0
    4. DarthLighter
       
      Ce que tu peux faire aussi, c'est générer un nombre aléatoire que le joueur doit trouver.

      Random rand = new Random();
      int max = 200;
      int min = 1;
      int n = rand.nextInt(max-min+1)+min;
      
      0
  2. Utilisateur anonyme
     
    Heu...
    C’est pas du JavaScript ça?
    0
    1. DarthLighter
       
      Bonjour,

      En effet, c'est du java.
      Il s'est trompé.

      Cdt.
      0
    2. Shinobi55 Messages postés 23 Statut Membre 1
       
      Oui, je sais j'ai mis java de base mais ça a mis javascript :/

      Cdt
      0