Как сделать так, чтобы он начинался с нуля, если пользователь вводит неправильный номер, ИЛИ начинал с начала, если пользователь вводил «1»? - PullRequest
0 голосов
/ 28 сентября 2019
package w3school;

import java.util.Random;
import java.util.Scanner;

public class nyttprogram {

   static void indata() {
      {
         Scanner determinedNumber = new Scanner(System.in);
         int user, computer, number, user2;
         System.out.println("Input a number from 0-10");
         user = determinedNumber.nextInt();

         Random random = new Random();
         int randomInt = random.nextInt(10);

         if (user == randomInt) {
            System.out.println("You guessed the correct number!");
         } else {
            System.out.println("You guessed the wrong number");
            System.out.println("The correct number was: " + randomInt);
         }
         System.out.println("Input 1 if you want to try again: ");
      }
   }

   public static void main(String[] args) {
      indata();
   }
}

Как сделать так, чтобы класс начинался заново, когда пользователь вводит 1 ИЛИ, если класс может начинаться заново, если пользователь вводит неправильный номер с самого начала, большое спасибо

1 Ответ

0 голосов
/ 28 сентября 2019

Как сделать так, чтобы класс начинался заново, когда пользователь вводит 1 ИЛИ, если класс может начинаться заново, если пользователь вводит неправильный номер с самого начала, большое спасибо

  • логика * start over * , основанная на некоторых условиях, обычно реализуется с помощью циклов while и do/while.
  • Сначала давайте выделим эти условия.Мы хотим повторить итерацию (начать заново), если:
    • Догадка пользователя неверна.
    • Догадка пользователя верна, но они вводят число, отличное от 1, когда их спрашивают, хотят ли онипродолжить.
  • Поскольку мы хотим запустить программу хотя бы один раз , естественный подход будет с do/while.Это выполнит одну итерацию, а затем проверит соответствие требуемым условиям.

Вот как это выглядит:

private static void inData() {
  Scanner userInputScanner = new Scanner(System.in);
  Random random = new Random();

  // Declare the stop/continue condition
  boolean isLoopContinue;

  do {
    // Generate a random number
    int expectedNumber = random.nextInt(10);

    // Ask the user to guess a number
    System.out.println("Input a number from 0-10");
    int givenNumber = userInputScanner.nextInt();

    if (givenNumber == expectedNumber) {

      // Correct answer, check if the user wants to continue
      System.out.println("You guessed the correct number!");
      System.out.println("\nInput 1 if you want to try again: ");

      // If they input "1", then we continue. Else we stop
      isLoopContinue = userInputScanner.nextInt() == 1;
    } else {

      // Wrong answer, loop again
      System.out.println("You guessed the wrong number");
      System.out.println("The correct number was: " + expectedNumber);
      isLoopContinue = true;
    }

  } while (isLoopContinue);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...