关于使用标签中断,Java编程。该程序在数组中搜索数字1。
public static void main(String[] args) {
int[][] arrayOfInts =
{{ 32, 87, 3, 589},
{ 12, 1076, 2000, 8},
{ 622, 127, 77, 955}};
int searchfor = 1;
int i = 0;
int j = 0;
boolean foundIt = false;
search:
for (; i < arrayOfInts.length; i++) {
for (j = 0; j < arrayOfInts[i].length; j++){
if (arrayOfInts [i][j] == searchfor) {
foundIt = true;
break search;
}
}
}
if (foundIt) {
System.out.println("Found "+ searchfor + " at " + i +", "+ j);
} else {
System.out.println(searchfor + " not in the array");
}
}
}
我不理解的代码部分是
search:
for (; i < arrayOfInts.length; i++) {
for (j = 0; j < arrayOfInts[i].length; j++){
if (arrayOfInts [i][j] == searchfor) {
foundIt = true;
break search;
}
}
}
以及为什么会有“;”在“ i”前面?
答案 0 :(得分:2)
这只是编写循环的另一种方式。
由于i
在for循环之前在外部初始化,因此在for循环中不需要初始化。
代码1:
for(int i=0;i<n;i++){}
代码2:
int i=0;
for(;i<n;i++){}
代码1和代码2含义相同。
答案 1 :(得分:2)
For循环到Uncaught TypeError: Failed to set an indexed property on 'CSSStyleDeclaration': Index property setter is not supported.
在您的第一个for循环中,因此没有要初始化的内容;
(<intialize counter>;<check loop condition>;<modify counter>)
答案 2 :(得分:0)
这是for循环的格式。 initialization
,termindation
和increment
部分可以为空白。
for (initialization; termination; increment) {
statement(s)
}
在您的代码示例中,i
在for循环之前被初始化。
这将类似于此:
public static void main(String[] args) {
int[][] arrayOfInts = {{1,2}, {3, 4}};
int searchfor = 8;
boolean foundIt = false;
for (int i = 0; i < arrayOfInts.length; i++) {
for (int j = 0; j < arrayOfInts[i].length; j++){
if (arrayOfInts [i][j] == searchfor) {
foundIt = true;
break;
}
}
}
}
请参阅:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html