首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同时循环在打印语句时永远重复

同时循环在打印语句时永远重复
EN

Stack Overflow用户
提问于 2017-11-08 04:10:50
回答 2查看 517关注 0票数 0

我正在制作一个Hangman游戏,用户猜测一个颜色。我想要发生的是:如果用户不正确地获得了5以上(查看了所有的5个提示),它将声明用户丢失了。在while循环完成之后(单词是正确的,或者经过了所有的5个提示),它应该告诉你是否赢了。这是代码中执行以下操作的部分:

代码语言:javascript
复制
public static void main(String[] args){
  Scanner in = new Scanner(System.in);
  String color = getColor();
  String result = EmptyStr(color);
  String[] hints = getHints(color);
  System.out.println("Please enter a letter:");
  char letter = in.next().charAt(0);
//-----------------------------------------------------------
  int wrong = 0;
  while (wrong<6){
    if (checkLetter(color, letter)){
      // result was previously defined elsewhere so don't worry about it
      result = Result(color, result, letter);
      System.out.println("Correct guess! here is your word so far: " + result);
      System.out.println("Lifelines left: " + (5 - wrong));
      if (result.equals(color)){
        System.out.println("congratulations! You Won!");
        break;
      }
    }
    else{
      wrong ++;
      System.out.println(hints[0]);
      System.out.println("Lifelines left: " + (5 - wrong));
    }
  }
  // also not sure what to put here after player wins or loses: System.out.println("Sorry! You lost! The correct word was: " + color);

}

然而,一旦我输入了一个字母,并且它是正确的,result = Result(color, result, letter); System.out.println("Correct guess! here is your word so far: " + result); System.out.println("Lifelines left: " + (5 - wrong));就会永远重复。我想知道:为什么它会永远重复?而且,我怎样才能修好它才能起作用呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-08 04:28:15

我发现了我自己的问题!

问题是,为了重申并允许我重新输入一个字母,char letter = in.next().charAt(0);必须在while循环中。解决了整个问题!

票数 0
EN

Stack Overflow用户

发布于 2017-11-08 04:23:37

我想我明白问题了。当用户得到正确的猜测时,只有在错误的情况下,才有迭代。确保添加另一个“错误的++",在第一个如果。也许能解决问题。

代码语言:javascript
复制
if (checkLetter(color, letter)){
      // result was previously defined elsewhere so don't worry about it
      result = Result(color, result, letter);
      System.out.println("Correct guess! here is your word so far: " + result);
      System.out.println("Lifelines left: " + (5 - wrong));
      wrong ++;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47171442

复制
相关文章

相似问题

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