int count=0;
int arr[][]=new int[4][4];
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
count=count+1;
   arr[i][j]=count;
System.out.print(arr[i][j]+"\t"); 
}
System.out.println();
}
    Scanner in=new Scanner(System.in);
         System.out.println("请输入查找的数字");
         int pt=in.nextInt();
         boolean flag=true;
    for(int i=0;i<arr.length;i++){
     for(int j=0;j<arr.length;j++){
     System.out.print(arr[i][j]+"\t"); 
         if(pt==arr[i][j]){     
          flag=true;
          }else
             {
          flag=false;
         }
     }
     System.out.println();
    }
   System.out.println(flag);
二维数组查找方法二维数组

解决方案 »

  1.   

    boolean flag = false;
    for (int i = 0; i < arr.length && !flag; i++) {
    for (int j = 0; j < arr.length && !flag; j++) {
    System.out.print(arr[i][j] + "\t");
    flag = pt == arr[i][j];
    }
    System.out.println();
    }
      

  2.   

    你应该先将boolean flag = false;
    然后if(pt==arr[i][j]){      
              flag=true;
              break; // 找到了,跳出循环
              }
      

  3.   

    for(int i=0;i<arr.length;i++){
         for(int j=0;j<arr.length;j++){
    吧这部分改成
    for(int i=0;i<arr.length;i++){
         for(int j=0;j<arr[j].length;j++){
      

  4.   


    2了。你写的没问题。 不过这样更好:flag =(pt == arr[i][j]);