我正在使用的代码如下。据我所知,代码的逻辑很好,但是当返回在char B的打印之后,那么for循环中的I将不会增加。如果我删除了return语句,那么for循环将按照我想要的方式递增,但是如果打印B / W我需要方法结束,所以我需要返回存在。非常感谢任何帮助我一直试图找出错误数小时的错误。
if(currentCodeString.contains("" + currentGuessChar)) {
for (int i = 0; i < codeLength; i++) {
System.out.println("" + i);
//System.out.println(currentGuess[i] + " - " + currentCode[i]);
if(checkPins(currentGuess[i], currentCode[i])) {
System.out.print("B");
return;
}
}
System.out.print("W");
return;
}
答案 0 :(得分:1)
在for循环中使用break
代替return
。
if(currentCodeString.contains("" + currentGuessChar)) {
for (int i = 0; i < codeLength; i++) {
System.out.println("" + i);
//System.out.println(currentGuess[i] + " - " + currentCode[i]);
if(checkPins(currentGuess[i], currentCode[i])) {
System.out.print("B");
break;
}
}
System.out.print("W");
return;
}
return
表示 - &#34;结束方法&#34;,break
表示 - &#34;结束循环&#34;
答案 1 :(得分:0)
打印&#34; B&#34;后,您应该将return
语句替换为break
。
答案 2 :(得分:0)
为什么你不使用&#34; Break&#34;而不是&#34;返回&#34;? 当B打印时,打破它!
在Thread编程中使用return。
答案 3 :(得分:0)
这是我的解决方案(没有休息,我不喜欢)
if(currentCodeString.contains("" + currentGuessChar)) {
bool found = false;
for (int i = 0; i < codeLength && !found; i++) {
System.out.println("" + i);
//System.out.println(currentGuess[i] + " - " + currentCode[i]);
if(checkPins(currentGuess[i], currentCode[i])) {
System.out.print("B");
found = true;
}
}
if (!found) {
System.out.print("W");
}
}