我定义了一个包含一些整数的二维数组。在我的程序中,用户输入一个数字以在二维数组中搜索它。找到数字后,我想在数组中打印数字的位置。但在我的程序中,它无法打印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!");
}
}
答案 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));
}