3.for循环
-
for 次数循环
-
语法:
for循环
for(条件初始化;条件判断;条件变化) {
重复执行的代码段;
}- 条件初始化 : 声明一个变量 i,并且第一次赋值
- 条件判断 : 值为boolean类型的判断结果
控制循环的结束 - 条件变化 : i自身值的改变
-
执行流程 :
- 条件初始化 i=1
- 条件判断: 判断是否结果,为false,循环结束,为true,执行本次循环体语句 i<5
- 条件变化 i++
- 重复执行第2,3步骤
-
注意:
- 在循环体语句中可以使用条件变量i
- for循环 中的条件变量i作用域只在当前循环
- 如果循环体语句只有一句,前后的{}可以省略
public class Class024_For{ public static void main(String[] args){ //重复执行一段代码,可以考虑是否可以使用循环 for(int i=1;i<=100;i++){ System.out.println("极限就业,挑战极限!!!!"+i); } //打印1~10之间的整数 //1)重复输出打印 2)输出内容有规律 确定变化区间[1,10],确定变化规律 每次+1 for(int i=1;i<=10;i++ ){ System.out.println(i); } //System.out.println(i); 错误: 找不到符号 //求1~10之间的整数和 //1.重复求和 2.对1~10之间的整数 int sum = 0; //记录和 for(int i=1;i<=10;i++){ //sum = sum+i; sum+=i; } System.out.println(sum); //15~20之间整数和 //重复求和 [15,20] sum = 0; for(int i=15;i<=20;i++) sum+=i; System.out.println(sum); } }
-
for循环的嵌套
-
for(条件初始化;条件判断;条件变化){
//循环体语句
for(条件初始化;条件判断;条件变化){
循环体语句
}
//循环体语句
} -
外层循环执行一次,内存循环执行一轮(从开始到不满足循环条件结束)
public class Class030_NestedLoop { public static void main(String[] args) { /* * * * * * * * * * * * * * * * * * * * * * * * * * */ //单层循环 int count = 0; //计数器 for(int i=1;i<=25;i++){ System.out.print("* "); count++; if(count==5){ System.out.println(); count=0; //计数器归零 } } System.out.println(); System.out.println(); System.out.println(); //双重循环 //外层循环控制行i 内层循环控制列 j for(int i=1;i<=5;i++){ for(int j=1;j<=5;j++){ System.out.print("* "); } System.out.println(); //换行 } System.out.println(); System.out.println(); System.out.println(); /* * * * * * * * * * * * * * * * * */ for(int i=1;i<=5;i++){ for(int j=1;j<=5;j++){ if(i==1 || i==5 || j==1 || j==5){ System.out.print("* "); }else{ System.out.print(" "); } } System.out.println(); //换行 } System.out.println(); System.out.println(); System.out.println(); /* * 1 * * 2 * * * 3 * * * * 4 * * * * * 5 */ for(int i=1;i<=7;i++){ for(int j=1;j<=i;j++){ System.out.print("* "); } System.out.println(); //换行 } /* * 1 * * 2 * * 3 * * 4 * * * * * 5 */ System.out.println(); System.out.println(); System.out.println(); for(int i=1;i<=5;i++){ for(int j=1;j<=i;j++){ if(j==1||j==i|i==5){ System.out.print("* "); }else{ System.out.print(" "); } } System.out.println(); //换行 } //打印九九乘法表 for(int i =1;i<=9;i++){ for(int j=1;j<=i; j++){ System.out.print(i+"*"+j+"="+i*j+" "); } System.out.println(); //换行 } } }
-
4.while循环
-
while 条件循环
-
语法:
条件初始化;
while(条件判断){
循环体;
条件变化;
}- 条件初始化 : 声明一个变量 i,并且第一次赋值
- 条件判断 : 值为boolean类型的判断结果
控制循环的结束 - 条件变化 : i自身值的改变
-
执行流程 :
- 条件初始化 i=1
- 条件判断: 判断是否结果,为false,循环结束,为true,执行本次循环体语句 i<5
- 条件变化 i++
- 重复执行第2,3步骤
-
注意:
- 三个循环之间可以相互转化
- 在使用while循环时候,注意条件的声明位置,条件变化的位置
-
for循环和while循环的适用范围
- for循环: 确定循环次数,确定条件变化区间,适合使用for循环
- while循环:条件不用声明就已经存在/条件变化不需要手动控制,这种情况适合使用while循环
public class Class026_while { public static void main(String[] args) { //for for(int i=1;i<=10;i++){ System.out.println(i); } //while int i=1; while(i<=10){ System.out.println(i); i++; } //1~100之间整数和 i=1; int sum = 0; while(i<=100){ sum+=i; i++; } System.out.println(sum); System.out.println(i); } }
5.do while循环
-
语法
- 条件初始化;
do{
循环体语句;
条件变化;
}while(条件判断);
- 条件初始化;
-
do while和while循环的区别
- do…while : 先执行一次,然后判断条件决定下一次知否执行,无论是否满足条件,都至少执行一次
- while : 先判断,满足条件要求再执行每一次循环
public class Class027_DoWhile { public static void main(String[] args) { /* while(false){ System.out.println("while...false"); } */ do{ System.out.println("do...while...false"); }while(false); //求100之间整数和 int i=1; int sum = 0; //while实现 while(i<=100){ sum+=i; i++; } System.out.println(sum); System.out.println(i); //转为do..while实现 int j = 1; sum = 0; //sum归零 do{ sum+=j; j++; }while(j<=100); System.out.println(sum); System.out.println(j); } }
6.break与continue
- break :
- 作用 : 结束整个循环
- 应用场景 : switch,循环
- continue:
- 作用 : 结束本次循环,直接进入到下一次循环
- 应用场景 : 本次循环中
public class Class029_BreakContinue {
public static void main(String[] args) {
//输出1~10之间的整数,如果遇到3或者3的倍数跳过
for(int i=1;i<=10;i++){
if(i%3==0){
continue;
}
System.out.println(i);
}
//找到100,300之间前五个能被5整数的数据
int count = 0;
for(int i=100;i<=300;i++){
if(i%5==0){
System.out.println(i);
count++;
//循环结束的条件
if(count==5){
break;
}
}
}
}
}