【发布时间】:2013-11-25 12:09:48
【问题描述】:
我在一个初学者 Java 课程中,对于一个项目,我需要计算一个条件返回 TRUE(correctGuess) 或 FALSE(incorrectGuess) 的次数,其中循环内有一个循环。我遇到的问题是,在循环重复时,内部循环中递增的变量不会保持其递增的值。因此,外部 while 循环的条件永远不会为假。我对编程真的很陌生,我无法弄清楚解决方案。提前感谢您花时间回答这个愚蠢的问题,如果有任何问题,我很乐意做出更好的解释。代码如下所示:
int incorrectGuess = 0;
int correctGuess = 0;
while(incorrectGuess < 6 && correctGuess < WORD_LENGTH) {
//Gets the users first guess
System.out.print("Please guess a letter [A-Z]: ");
letterGuessed = keyboard.nextLine();
for (int i = 0; i < WORD_LENGTH; i++){
char value = wordLetterArray[i];
String letterArray_value = String.valueOf(value);
if(letterGuessed.equals(letterArray_value)){
++correctGuess;
}
else
System.out.println("Bad comparison!");
if(i == WORD_LENGTH)
++incorrectGuess;
}
}
【问题讨论】:
-
不,这些值将保持不变。什么告诉你他们没有持有?
-
这:if(i == WORD_LENGTH) 在具有此退出条件的 for 循环内:i
-
incorrectGuess到底应该跟踪什么?请注意,由于incorrectGuess在带有条件i < WORD_LENGTH的for 循环内以及在带有条件i==WORD_LENGTH的if 语句内递增,它实际上永远不会递增,因为这两个条件不可能同时为真。也许你的意思是i==WORD_LENGTH-1用于 if 语句? -
对不起,这个程序是一个刽子手游戏。 “不正确的猜测”是指用户猜测的字母不是单词的一部分。因为这是一个刽子手游戏,所以你只会猜到 6 次错误的猜测(要得到一个被绞死的人,你首先画出头(1)、身体(2)、手臂(3 和 4)和腿(5 和 6))。正确猜测然后跟踪正确猜测的数量,以便当用户正确猜测所有字母时,程序将终止,而不是继续要求另一个猜测。编辑:是的,我的意思是 i==WORD_LENGTH-1。
-
另外,如果条件错误,if(letterGuessed.equals(letterArray_value)) letterGuessed 是一个字符串,letterArray_value 是一个字符,所以它们永远不会相等。
标签: java loops nested increment operator-keyword