簡體   English   中英

在Java中搜索2D數組行

[英]Searching an 2D array row in java

我正在搜索具有102D數組 如果0旁邊有一個3,則0會轉換為3。我想出了如何搜索一次行,但是我想重復同樣的for循環,直到所有0都轉換為3。提前尋求幫助。

這是一個視覺描繪。 因此,如果我搜索第二行,我會發現第一個0碰到3,但是接下來我想遍歷同一行並找到下一個碰到3的0。希望您能澄清一下! :)

1 1 1 1 1 3 1 1

1 0 1 1 0 0 1 1

1 1 1 1 0 1 1 1

等等

我從索引為1的行開始搜索,找到第一個與3接觸的0,然后將其轉換為3。因此,我有以下內容,然后我需要返回並重復該過程,直到將剩余的0轉換為a。 3,然后對每行重復一次:

1 1 1 1 1 3 1 1

1 0 1 1 0 3 1 1

1 1 1 1 0 1 1 1

    public boolean searchRows(){
    boolean found = false;
    for (int c = 0; c < cave[rowIndex].length; c++){

        if(cave[rowIndex][c]==0){
            if (cave[rowIndex-1][c] == 3){
                cave[rowIndex][c] = 3;
                found=true;
            }
            else if(cave[rowIndex][c-1] == 3){
                    cave[rowIndex][c] = 3;}
            else {found=false;}
        }
    }   
    return found;
}

似乎您的for循環可以正常工作以遍歷一行。 看來您並未檢查所有可能觸及您當前正在查看的元素。 看起來您正在檢查位於其正上方的元素,並且正位於其左側的元素。 您還應該檢查問題所要求的其他方向。 您還應該檢查一下,不要檢查不存在的數組索引,這樣就不會出現ArrayIndexOutOfBounds錯誤。 除此之外,請確保您在實際找到要變成3的零的任何時候設置發現的布爾值。當前,您僅在一種情況下將Found設置為true,而在另一種情況下則不設置為true。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM