首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于游戏的Java循环

用于游戏的Java循环
EN

Stack Overflow用户
提问于 2018-10-09 00:52:32
回答 1查看 38关注 0票数 -4

我的代码出了点问题。由于某种原因,每次我运行代码时,“if (guess <1 || guess >10 ) System.out.println (”您的猜测需要介于1和10之间“);”语句被视为一次猜测尝试。如果玩家的猜测超出了1-10的范围,我们的目标是不计算尝试次数。我试过休息一下,但是我不能把它弄对?有谁知道如何打破循环,返回猜测,如果用户超出范围(不将其视为尝试)?

谢谢

代码语言:javascript
复制
import java.security.SecureRandom;
import java.util.Scanner;

public class GuessTheNumber {
private Scanner input = new Scanner(System.in);
private SecureRandom randomNumbers = new SecureRandom();
private int numberOfGuesses;

public void play() {
    numberOfGuesses = 0;
    int magicNumber = 1 + randomNumbers.nextInt(10);

    int guess = askForGuess();



    while(guess != magicNumber){
    // Some kind of loop, maybe while
    numberOfGuesses++;
    // is theGuess equal to magicNumber or is it
    guess = input.nextInt();
    // too high or is it too low




    if (guess == magicNumber)
    System.out.println("Yes, the number is " + magicNumber);

  else if (guess > magicNumber)
    System.out.println("Your guess is too high");

  else if (guess < magicNumber)
    System.out.println("Your guess is too low");

          System.out.println  ("Number of times guessed: "
    + numberOfGuesses );
    // Display "correct in numberOfGuesses"



    }

  }


}

private int askForGuess( ) {

    int guess = 0;


     // prompt for a guess
    System.out.println("Enter a number:");

    if (guess <1 || guess >10 )
        System.out.println ("Your guess needs to be between 1 and 10");

  return guess;



      }

   }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-09 01:08:12

您需要在"askForGuess()“方法中接受输入,并且还将在那里执行一些类似如下的递增操作

代码语言:javascript
复制
public class GuessTheNumber 
{
private Scanner input = new Scanner(System.in);
private SecureRandom randomNumbers = new SecureRandom();
private int numberOfGuesses;

public void play() {
    numberOfGuesses = 0;
    int magicNumber = 1 + randomNumbers.nextInt(10);

    int guess = 0;

    while(guess != magicNumber){
    // Some kind of loop, maybe while
    guess = askForGuess();
    // is theGuess equal to magicNumber or is it

    if (guess == magicNumber)
    System.out.println("Yes, the number is " + magicNumber);

  else if (guess > magicNumber)
    System.out.println("Your guess is too high");

  else if (guess < magicNumber)
    System.out.println("Your guess is too low");

          System.out.println  ("Number of times guessed: " + numberOfGuesses );
    }

  }

private int askForGuess( ) 
{
    int guess = 0;
     // prompt for a guess
    System.out.println("Enter a number:");

    guess = input.nextInt();

    if (guess <1 || guess >10 )
        System.out.println ("Your guess needs to be between 1 and 10");
    else
        numberOfGuesses++;

  return guess;
}

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52706868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档