首页 > 解决方案 > 如果我的 while 循环成功,如何使最后一行不打印?

问题描述

我正在进行我的项目的最后一点,只有一个我似乎无法修复的小错误。

我的目标是不打印“到目前为止您的知识:” + idk); 如果while循环完成。

我试图将它移动到不同的行,但似乎没有任何作用。

    char guess = getGuess(console);
    String idk = replaceBlanks(secretWord, blanks, guess);
    System.out.println("Your knowledge so far: " + idk);
    int counter = 1;
    while (!(idk.equals(secretWord))) {
        counter ++;

        guess = getGuess(console);

        idk = replaceBlanks(secretWord, idk, guess);
     System.out.println("Your knowledge so far: " + idk);

    }
    System.out.println("Congratulations, you discovered the word " +  "\"" + idk + "\"" + "!");
    System.out.println("It took you " + counter + " guesses.");

  }
}

预期的

Your knowledge so far: _______
Guess a letter: r
Your knowledge so far: R_____R
Guess a letter: a
Your knowledge so far: RA___AR
Guess a letter: c
Your knowledge so far: RAC_CAR
Guess a letter: e
Congratulations, you discovered the word "RACECAR"!
It took you 4 guesses.

实际的

Your knowledge so far: _______
Guess a letter: r
Your knowledge so far: R_____R
Guess a letter: a
Your knowledge so far: RA___AR
Guess a letter: c
Your knowledge so far: RAC_CAR
Guess a letter: e
Your knowledge so far: RACECAR    <<<<<<<<<<<<-------
Congratulations, you discovered the word "RACECAR"! 
It took you 4 guesses.

标签: javaprintingwhile-loop

解决方案


最简单的方法是:

while (!(idk.equals(secretWord))) {
  counter ++;

  guess = getGuess(console);

  idk = replaceBlanks(secretWord, idk, guess);
  if (!idk.equals(secretWord)) {
    System.out.println("Your knowledge so far: " + idk);
  }
}
System.out.println("Congratulations, you discovered the word " +  "\"" + idk + "\"" + "!")
System.out.println("It took you " + counter + " guesses.");

在打印前检查是否不满足条件


推荐阅读