[英]How to I make the last line of my code print all values with 2 digits after decimal point?
[英]How do I make the last line not print if my while loop is successful?
我正处于我项目的最后一点,而且我只能解决一个小错误。
我的目标是不打印“你的知识到目前为止:”+ 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.");
只需在打印前检查是否满足条件
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 ++;
System.out.println("Your knowledge so far: " + idk);
guess = getGuess(console);
idk = replaceBlanks(secretWord, idk, guess);
}
System.out.println("Congratulations, you discovered the word " + "\"" + idk + "\"" + "!");
System.out.println("It took you " + counter + " guesses.");
}
很酷......这样做:
char guess = getGuess(console);
String idk = replaceBlanks(secretWord, blanks, guess);
System.out.println("Your knowledge so far: " + idk);
int counter = 1;
while (true) {
counter ++;
guess = getGuess(console);
idk = replaceBlanks(secretWord, idk, guess);
if( idk.equals(secretWord)) break ;
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.");
}
因此,一旦您意识到您的停止条件得到满足,您基本上就会脱离循环。 你确实调用了guess()函数,但是在打印语句之前就打破了循环。
您可以将它翻转到do ... while循环。
// not sure about this... idk should look like "_____" at this point.
String idk = replaceBlanks(secretWord,blanks,null);
int counter = 0;
do {
System.out.println("Your knowledge so far: " + idk);
counter ++;
guess = getGuess(console);
idk = replaceBlanks(secretWord, idk, guess);
} while (!(idk.equals(secretWord)));
System.out.println("Congratulations, you discovered the word " + "\"" + idk + "\"" + "!");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.