java - 如果我的 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.
解决方案
最简单的方法是:
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.");
在打印前检查是否不满足条件
推荐阅读
- c++ - 如何将 QPixmap 设置为空
- c# - XmlMessageFormatter 正在生成正文中全为零的消息
- wkwebview - WKWebView:localStorage 在 window.close 上变为空
- ios - 更改自定义单元格内容视图颜色
- javascript - 谁能给我一些使用自动化 RPA 解决方案工具打开 Chrome 的解决方案?
- ios - MK 方向请求 - 方向线未显示
- android - 如何找到最新的 gradle 版本和包装器
- php - Laravel:前端的 AJAX 查询在 1 个 JSON 变量超过 50,000 - 68,000 个字符长后丢失数据
- c++ - clang-tidy 错误地替换了 typedef 中的模板参数
- sql - 避免存储所有可能的产品配置的排列