循环
在java中有3种循环,分别是while循环,for循环,for each循环
while循环
while循环的形式是 while(condition) statement
int i = 5;
while (i > 0){
i--;
}
上面的while循环会先进行判断,然后再执行循环体里面的代码。如果想要先执行循环体代码然后再判断,那么就可以使用do while循环
do/while循序这个和while是类似的,形式为 do statement while(condition)
int j = 5;
do {
j--;
}while (j > 0);
while 和 do/while 的区别就是while先要进行判断,而do/while后进行判断
for循环
for循环也被叫做确认循环,因为for循环一般都是确认循环次数的
for循环的格式如下
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
for循环由3部分构成
- int i = 0;是第一部分,表示初始化计数器,如果是在for循环这里定义的变量,那么作用域就是该for循环的代码块
- i < 10;是第二部分,就是用来判断是否退出循环的,当该条语句为false的时候就退出循环
- i++ 这是第三部分,表示在每次循环结束时要进行的操作,也就是如何更新计数器,可以理解为该条语句就是在该循环代码块的最后一条语句
每个部分都是可以选择是否填写的
// for循环写法有很多,例如我们可以增大计数器的的作用范围
int j;
for (j = 0; j < 10; j++){
}
// 死循环
for (int i = 0; ; i++) {
}
for each循环
Java有一种功能很强的循环结构,可以用来依次处理数组(或者其他元素集合)中的每
个元素,而不必考虑指定下标值。
这种增强的for循环的语句格式为:for (variable collection)statement
要使用for each循环,必须是一个数组或者实现了Iterable,如 ArrayList
下面的代码就使用for each遍历了数组和List
// 输出5,4,3,2,1
for (int i : a) {
System.out.println(i);
}
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
// 输出 1,2,3,4,5
for (Integer integer : list) {
System.out.println(integer);
}
中断控制语句
提前终止循环的语句有break,continue,带标签的break
break
break语句可以跳出循环语句,相当于提前终止循环,使用很简单,在循环体里面执行到break就会跳出该循环体
// 下面当i > 3 的时候就会终止循环,程序只会输出0,1,2,3
for (int i = 0; i < 5; i++) {
if (i > 3) break;
System.out.println(i);
}
continue
continue语句会跳过本次循环,不会终止循环。相当于continue后面的代码不会执行,直接开始执行下一次循环
// 下面代码会输出 0,1,2,4
for (int i = 0; i < 5; i++) {
if (i == 3) continue;
System.out.println(i);
}
带标签的break(相当于goto)
java中也有类似于goto功能,就是使用带标签的break跳出到任意位置。要使用首先需要定义标签, 自己写一个标签名称,后面紧跟一个冒号,标签需要放到希望跳出的循环前面,下面代码就是一个简单应用
rollback:
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
for (int k = 0; k < 10; k++) {
// break的时候带上自己要回退到哪里的标签,回退之后就会跳出标签点挨着的循环
if (i == 2)break rollback;
}
}
}
该方式也可以使用在任意代码块,不止是循环,但是不建议使用,因为可能会导致程序结构混乱