Пока цикл, пока вы случайно не выбрасываете выбранное число, куда ставить случайное - PullRequest
2 голосов
/ 07 мая 2019

во время практики циклов while я пытался создать код, в который вы помещаете случайное число, а затем угадываете, сколько попыток требуется, чтобы его перекатить, но я не могу объявить переменную "шанс" в то время, но если я поставлю его перед ним, он просто сохранит1 число.

    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.");
}

Как мне объявить шанс int, чтобы он вошел в цикл while?

Ответы [ 3 ]

2 голосов
/ 07 мая 2019

Если я понял ваш вопрос, думаю, вам следует использовать цикл do-while. Он войдет в цикл по крайней мере один раз.

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.");
2 голосов
/ 07 мая 2019

Вы можете просто переназначить шанс на новое значение в цикле while:

int count = 0;
int chance = rng.nextInt((100)+1);
while (choice != chance) {
    System.out.println(chance);
    chance = rng.nextInt((100)+1);
    count++;
}
1 голос
/ 07 мая 2019

Не объявлять переменную chance снова.Просто переназначьте его на новое значение.

chance = rng.nextInt((100)+1);

Проблемы в коде:

  1. Цикл никогда не использует tries.
  2. Код неопределить, когда количество попыток недостаточно, чтобы угадать число, введенное пользователем

Следующие адреса их:

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");
}

Логика:

  1. Использованиеtries, чтобы определить, сколько раз требуется цикл.Уменьшайте его после каждого прогона.
  2. Если выбор и шанс равны, управление выпрыгивает из цикла.
  3. Последнее условие if должно определить, был ли пользователь способенугадать в количестве попыток
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...