在二维数组中打印值的位置

时间:2014-03-09 07:26:49

标签: java arrays search

我定义了一个包含一些整数的二维数组。在我的程序中,用户输入一个数字以在二维数组中搜索它。找到数字后,我想在数组中打印数字的位置。但在我的程序中,它无法打印j的位置。我怎么能纠正它?

public static void main(String[] args) {
   int[][] arrayOfInt = {
       {12, 14, 15},
       {56, 36, 48},
       {23, 78, 69,48}
   };
   Scanner input = new Scanner(System.in);
   int search,i,j;
   boolean check = false;
   System.out.print("Enter your number: ");
   search = input.nextInt();
   search:
   for (i=0; i<arrayOfInt.length; i++)
   {
       for(j=0; j<arrayOfInt[i].length; j++)
       {
           if(arrayOfInt[i][j] == search)
           {
               check = true;
               break search;
           }
       }
   }
   if (check)
   {
        System.out.println("i = " + i + " and j = " + j);
   }
   else
   {
       System.out.println("There is not in the array!");
   }
}

2 个答案:

答案 0 :(得分:1)

编译器抱怨j没有被初始化,因为如果执行外部for循环的内容,它只会被赋值。

您可以通过将j初始化为任意值来消除此错误,如下所示:

int search, i, j = -1;

答案 1 :(得分:1)

你的程序看起来很好,不应该有任何问题。

唯一的,你需要打印i + 1&amp; j + 1值以便打印数组的实际索引。另外,你需要在开始时初始化j。

int search,i,j = 0;

if (check)
{
     System.out.println("i = " + (i+1) + " and j = " + (j+1));
}