以for循环返回

时间:2015-12-27 06:43:23

标签: java loops if-statement for-loop

我正在使用的代码如下。据我所知,代码的逻辑很好,但是当返回在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;
    }

4 个答案:

答案 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");
        }
    }