循环
Java中有两种循环,for
和while
。
“for”
for循环有三个部分:
for (int i = 0; i < 3; i++) {}
当我们进入循环时,第一部分运行一次。
第二部分是守门员,如果它返回true
,我们在循环中运行语句,如果它返回false
,我们退出循环。它首次在第一部分之后运行,然后每次循环结束并运行第三部分。
第三部分是每次循环运行时运行的最终语句。
所以在我们刚刚看到的情况下,循环将运行3次。这是命令的顺序:
int i = 0;i < 3 // 0 < 3 = true // Inside of loopi++ // i is now 1i < 3 // 1 < 3 = true // Inside of loopi++ // i is now 2i < 3 // 2 < 3 = true // Inside of loopi++ // i is now 3i < 3 // 3 < 3 = false // Loop is done...
我们可以省略循环的第一和第三部分(虽然它会很奇怪),循环仍然可以工作:
for (;i < 5;) {}
对于我们想要使用看起来像这样的while
循环的情况,我们使用循环
“while”
我们看到的语法与之前的语法非常相似:
while (condition) {}
进入时以及每次完成循环时,条件将首次运行。如果返回false,则循环不会运行。
如果我们希望循环始终至少运行一次,我们可以使用do-while
do {} while(condition);
请注意;
do-while的结尾。
"foreach"
另一个版本是foreach。我们使用的关键字仍然是for
,但是当我们想要迭代数组中的元素时,我们可以简单地使用它:
int[] arr = {2, 0, 1, 3};for (int el : arr) { System.out.println(el);}
这是一个简短的版本,相当于:
int[] arr = {1, 9, 9, 5};for (int i = 0; i < arr.length; i++) { int el = arr[i]; System.out.println(el);}
请注意,如果要使用循环内元素的索引,则必须使用较长的版本,并且不能使用foreach。
"break and continue"
这两个关键字可以帮助我们控制循环。 break
将导致循环停止并将立即转到循环后的下一个语句:
int i;for (i = 0; i < 5; i++) { if (i >= 2) { break; } System.out.println("Yuhu");}System.out.println(i);// Output:// Yuhu// Yuhu// 2
continue
将停止当前迭代并将移至下一个迭代。请注意,在for循环中,它仍将运行第三部分。
int i;for (i = 0; i < 5; i++) { if (i >= 3) { break; } System.out.println("Yuhu"); if (i >= 1) { continue; } System.out.println("Tata");}System.out.println(i);// Output// Yuhu// Tata// Yuhu// Yuhu// 3