Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使for循环中的if语句仅在搜索二维数组中的元素后的第一次出现时才出现?_Java_Arrays_Loops_For Loop_2d - Fatal编程技术网

Java 如何使for循环中的if语句仅在搜索二维数组中的元素后的第一次出现时才出现?

Java 如何使for循环中的if语句仅在搜索二维数组中的元素后的第一次出现时才出现?,java,arrays,loops,for-loop,2d,Java,Arrays,Loops,For Loop,2d,例如,以下是我迄今为止的代码和尝试: public void probeClicked(){ for (int i = 0; i < buttons.length; i++) { for (int j = 0; j < buttons[0].length; j++) { if (counts[i][j]==MINE){ buttons[i][j].setText("M");

例如,以下是我迄今为止的代码和尝试:

public void probeClicked(){

    for (int i = 0; i < buttons.length; i++) {
        for (int j = 0; j < buttons[0].length; j++) {

            if (counts[i][j]==MINE){
                buttons[i][j].setText("M");
                buttons[i][j].setEnabled(false);
                JOptionPane.showMessageDialog(frame, "Probe clicked! 1 Mine has been revealed.");
                break;


            }
            else{

                continue;
            }

} }
public void probeClicked(){
对于(int i=0;i

我想这样做,一旦它找到一个矿井,它就会跳出循环,方法也就完成了。

而不是使用
中断
,它将跳出内部for循环,只需使用
返回

public void probeClicked(){

for (int i = 0; i < buttons.length; i++) {
    for (int j = 0; j < buttons[0].length; j++) {

        if (counts[i][j]==MINE){
            buttons[i][j].setText("M");
            buttons[i][j].setEnabled(false);
            JOptionPane.showMessageDialog(frame, "Probe clicked! 1 Mine has been revealed.");
            return;


        }
        else{

            continue;
        }
} }
public void probeClicked(){
对于(int i=0;i
如果希望方法结束,请使用return而不是break。如果希望它在外循环之后继续,可以执行以下操作:

outer:
for (int i = 0; i < buttons.length; i++) {
    for (int j = 0; j < buttons[0].length; j++) {

谢谢,这确实解决了一点问题。我现在的下一个问题是,它只在我出于某种原因第一次找到探测器时才起作用。如果我再次找到探测器,尽管显示了If语句中的消息,但地雷将不再被检测到。我不确定我是否理解您的新问题。每当您输入If语句时,第一个(并且仅此一个)是时间,执行将离开这个方法。这不是你想要的吗?
break outer;