[英]Searching an 2D array row in java
我正在搜索具有1和0的2D數組 。 如果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.