en pratiquant des boucles while, j'ai essayé de créer du code dans lequel vous mettez un nombre aléatoire et ensuite vous devinez combien d'essais il faut pour le lancer, mais je ne peux pas déclarer la variable "chance" à l'intérieur du moment, mais si je la mets avant, elle reste 1 nombre glissant.
Random rng = new Random(); Scanner input = new Scanner(System.in); System.out.println("Select a number you want to roll"); int choice = input.nextInt(); System.out.println("You feelin' lucky?\nHow many tries until you get " + choice); int tries = input.nextInt(); int count = 0; int chance = rng.nextInt((100)+1); while (choice != chance) { System.out.println(chance); count++; } System.out.println("You won! It only took " + count + " tries."); }
Comment puis-je déclarer la chance int pour qu'elle entre dans la boucle while?
3 Réponses :
Vous pouvez simplement réattribuer une chance à une nouvelle valeur dans la boucle while:
int count = 0; int chance = rng.nextInt((100)+1); while (choice != chance) { System.out.println(chance); chance = rng.nextInt((100)+1); count++; }
Ne déclarez pas à nouveau la variable chance
. Réaffectez-le simplement à une nouvelle valeur.
Random rng = new Random(); Scanner input = new Scanner(System.in); System.out.println("Select a number you want to roll"); int choice = input.nextInt(); System.out.println("You feelin' lucky?\nHow many tries until you get " + choice); int tries = input.nextInt(); int count = 1; int chance = rng.nextInt((100) + 1); while (tries > 0) { System.out.println(chance); if (choice == chance) break; chance = rng.nextInt((100) + 1); count++; tries--; } if (choice == chance) { System.out.println("You won! It only took " + count + " tries."); } else { System.out.println("You lost"); }
Problèmes dans le code:
essais
. Ce qui suit les aborde:
chance = rng.nextInt((100)+1);
Logique:
essais
pour déterminer combien de fois la boucle doit s'exécuter.
Décrémentez-le après chaque exécution. Si j'ai bien compris votre question, je pense que vous devriez utiliser la boucle do-while
. Il entrera dans la boucle au moins une fois.
Random rng = new Random(); Scanner input = new Scanner(System.in); System.out.println("Select a number you want to roll"); int choice = input.nextInt(); System.out.println("You feelin' lucky?\nHow many tries until you get " + choice); int tries = input.nextInt(); int count = 0; do { int chance = rng.nextInt((100)+1); System.out.println(chance); count++; } while (choice != chance) System.out.println("You won! It only took " + count + " tries.");
Vous devez réattribuer la chance à l'intérieur de la boucle ... c'est-à-dire
chance = rng.nextInt (101);
Êtes-vous conscient que cela pourrait durer éternellement?