for循环

for (initialization; condition; update) {
    // 循环体代码
}
其中,`initialization`是循环变量的初始值;`condition`是循环控制条件,当条件为`false`时循环结束;`update`是循环变量的更新操作,通常是递增或递减。

`for`- 循环的执行流程是:先执行`initialization`语句,然后判断`condition`是否为`true`,如果为`true`,则执行循环体代码,接着执行`update`语句,再次判断`condition`是否为`true`,如此重复直到`condition`为`false`。
for(int sum=0;;){  
    sum++;  
    if(sum>=10) {  
        System.out.println(sum);  
        break;    }  
}
for(;;){

}

While循环


while (condition) {
    // 循环体代码
}

其中,`condition`是循环控制条件,当条件为`false`时循环结束。`while`循环的执行流程是:先判断`condition`是否为`true`,如果为`true`,则执行循环体代码,再次判断`condition`是否为`true`,如此重复直到`condition`为`false`。

### do-While 循环
````java 
do {
    // 循环体代码
} while (condition);

其中,`condition`是循环控制条件,当条件为`false`时循环结束。`do-while`循环的执行流程是:先执行一次循环体代码,然后判断`condition`是否为`true`,如果为`true`,则继续执行循环体代码,接着再次判断`condition`是否为`true`,如此重复直到`condition`为`false`。

### break和continue语句
continue语句用于结束当前循环中的本次迭代,还是会继续执行剩下的循环。
break语句用于结束一个循环,其执行的效果是直接跳出循环,继续执行循环后面的代码。

### 底层解析🧐
```java 
public static void main(String[] args) {  

    for (int i = 0; i < 10; i++) {  
        if (i == 5) {  
            break;  
        }  
    }  
}

本字节码文件中会有2个GOTO关键字(GOTO L1 L2 )
💡GOTO L1 是 为了继续循环,GOTO L2 是当满足条件时跳出循环

image.png