2016-03-23 9 views
1

理想的には、値を見つけたらカウンターを停止するのが理想的です。プログラムを実行すると、マトリックス内の他の値の比較が続けられます。2D配列LinearSearch Sorted List

public static void LinearSearch1(int[][] matrix, int array_size, int target) { 
     int row, col; 
     int comparison_counter = 0; 
     boolean found = false; 

     while (!found) 
     { 
      for (row = 0; row < array_size; row++) 
      { 

       for (col = 0; col < array_size; col++) 
       { 
        comparison_counter++; 
        if (matrix[row][col] == target) 
        { 
         found = true; 

        }//end if 


       }//end inner for  
      }//end outer for 
     } //end while 

     System.out.println(target + " found in " + comparison_counter + " number of comparisons using linear search"); 
    } 

答えて

0

の後にbreak;を使用できますが、すべてのループを終了します。 forループだけを終了したい場合は、&& !foundをforループテストに追加する必要があります。

Btw、なぜwhile(!found)がありますか?

+0

それはタイプミスでした、ありがとう! –

0
if (matrix[row][col] == target) 
{ 
    found = true; 
    break; //Add this line 
} 
+2

このコードは質問に答えるかもしれませんが、このコードが質問に答える理由および/または方法に関する追加の文脈を提供することで、長期的な価値が向上します。 – ryanyuyu

0

あなたはブール変数falseに設定されているあなたは、whileループで

を来されることはありませんが見つかった場合、それは次のようになります。

while (!found) 

と一度found = trueその後、追加しますbreak;