循环语句:
重复做某件事
for 循环 重要等级:*****
while 循环 重要等级:****
do..while 循环 了解
语法:
for(条件初始化;条件判断;条件变化){
重复执行的代码;
}
条件初始化: 声明一个变量并且赋值 int i = 1;
条件判断 : 对变量i的判断,决定循环体{}重的代码是否能够执行,决定循环是否结束
条件变化: i自身值得改变
执行流程:
1.条件初始化,声明一个变量并且赋值 i
2.条件判断,判断i条件是否满足要求,得到一个boolean结果
3.如果结果为false,结束循环结构,如果结果为true,执行当前这一次循环体{}中的语句
4.条件变化 i变量自身值得改变,如果i永远不变,要不无法进入循环,要不循环无法停止
重复执行第2~4步
注意:
循环中 的条件i,不仅可以通过数值范围变量方式控制循环体执行的次数,还可以在循环体中使用,可变,根据定义的规律改变
循环体语句中只有一句的时候,前后的{}可以省略
public class ForDemo02 {
public static void main(String[] args) throws InterruptedException {
//重复打印10次
for(int i = 1;i<=100;i++){
System.out.println("好好学习,天天向上!!!"+i);
//当变量为50的时候,程序停止10s
if(i==50){
System.out.println("中场休息十秒钟");
Thread.sleep(10000);
}
}
//循环的条件 i的作用域: 只在当前定义的循环中
//System.out.println(i);
//计算1+2+3+4的值
//重复求和 求和的数字有规律
int sum = 0;
for(int i=1;i<=10;i+=1)
sum = sum+i;
System.out.println("和为"+sum);
}
}
运行截图:
do ... while()
do{
循环体语句;
}while(条件判断);
while与do ... while的区别:
while先判断后执行
do ... while是先执行后判断
无论是否满足条件都至少执行一次
for 与 while与 do..while可以相互转换,推荐使用for和while
public class DoWhileDemo05 {
public static void main(String[] args) {
boolean flag = false;
while(flag){
System.out.println("无法执行");
}
do{
System.out.println("do..while");
}while(flag);
//计算1~10之间的和
int sum = 0;
int i = 1; //条件初始化
do {
sum+=i;
i++; //条件判断
}while(i<=10);
System.out.println(sum);
System.out.println(i);
//求出 1-100当中能被3整除或者能被5整除或者能被2整除的和
int sum1 = 0;
int a = 1;
do{
if (a%3 == 0 || a%5 == 0 || a%2 == 0) {
sum1 += a;
}
a++;
}while (a <= 100);
System.out.println("1-100当中能被3整除或者能被5整除或者能被2整除的和为:" + sum1);
//求5的阶乘 5! 5*4*3*2*1
sum1 = 1;
a = 5;
do {
sum1 *= a;
a--;
}while (a > 0);
System.out.println("5的阶乘为:" + sum1);
}
}
运行截图:
break
作用: 终止 ,停止
应用场景: switch语句 循环语句
continue
作用: 停止当前这一次 循环的执行,直接进入到下一次循环
应用场景: 循环中
public class BreakContinue06 {
public static void main(String[] args) {
//打印1~10之间的数据,当4,6的跳过
for(int i=1;i<=10;i++){
if(i==4 || i==6){
continue;
}
System.out.println(i);
}
//死循环 配合break关键字一起使用,可以存在终止机会
int j=1;
while(true){
if(j==5){
break;
}
j++;
}
System.out.println(123);
//1~10之间能被3整除的前2个数
int count = 0; //计数器
for(int i=1;i<=10;i++){
if(i%3==0){
System.out.println(i);
count++;
if(count==2){
break;
}
}
}
}
}
运行截图:
循环嵌套:
循环中定义循环
可以中自定义嵌套,但是使用最多的情况是for循环嵌套
for(;;){
代码;
for(;;){
代码;
}
代码;
}break,continue 在多重循环嵌套下,针对内层循环,还是最外层
--> 默认控制内层循环,当前我所在的这个循环
如果想要终止|调出的是所有的循环(外层循环)--->带标签的break|continue
为循环添加标签,在开始位置,可以直接跳转达到对应标志位置