06 流程控制_02_循环结构
循环结构
主要有三种基本循环结构语句:for循环 while循环 do-while循环
循环结构通常包含四个部分:1.初始化部分(声明或者定义一个需要循环的变量,通常使用int类型的整数)
2.循环条件部分(循环结束的条件表达式 布尔类型值ture /false )
3.循环体部分(当条件满足时,程序需要加载的代码)
4.迭代部分(循环变量的变化情况)-->往上递增/往下递减
for循环
语法结构:for(1初始化语句;2循环条件表达式;4迭代语句){
3循环体语句代码
.
.
.
...
}
执行的过程:
1-->2-->3-->4-->2-->3-->4-->2-->3-->4.......直到程序结束
注意: 1.说明:当循环条件表达式的结果值为false,那么该循环语句结构就结束了
此时程序就跳出该循环结构,往下执行后面的代码。
2.循环条件表达式需要关联前面的初始化声名的变量。
3.每次执行到循环条件表达式时,都会重新判断该表达式的真假,
当该表达时为真的时候,执行循环语句结构中循环体代码
当该表达式为假的时候,该循环语句结束,程序跳出该循环结构
4.查看该循环语句结构的循环次数(关键信息)。
eg:要求在程序中输出10行文本信息“我很棒,我很优秀,我是最棒的!” for(int i = 0 ; i < 10; i++){ // index-->索引() 此处i++可以换为i=i+1; System.out.println("我很棒,我很优秀,我是最棒的"); }
执行过程:
int i = 0;-->i<10;-->System.out.println("我很棒,我很优秀,我是最棒的");
--> i++; 此时i = 1 --> i < 10;-->System.out.println("我很棒,我很优秀,我是最棒的");
--> i++; 此时i = 2 --> i < 10;-->System.out.println("我很棒,我很优秀,我是最棒的");
--> i++; 此时i = 3 .......
--> i++; 此时i = 10 --> i > 10;此时该表达式结果为false 循环结构结束。
循环次数:0--> = 10次
(累加)eg:正整数累加 = 1 + 2 + 3 + 4 + 5 + 6 +....+100
int sum = 0;// sun 累加和
for(int i = 1; i <= 100; i++){
sum = sum + i ;//累加之后赋给sum变量
}
System.out.println("输出前100个正整数的和为:" + sum);
跳出语句:break continue
break:
中断,打断,停止,那就是让当前正在执行的循环语句结构(单层)停止,程序跳出该循环语句结构
continue:
继续,那就是执行到该跳出语句时,程序发生跳跃,但是没有跳出该循环语句结构,吐过该循环语句中的
循环条件成立,那么程序会再次进入到该循环语句结构中,执行该循环语句结构中的循环体内容。
这两个都写在循环体部分下方
while循环
语法格式:
1.初始化部分
while(2.布尔类型的表达式){
3.循环体的代码
4.迭代部分
}
执行过程:
1-->2-->3-->4-->2-->3-->4-->2-->3.......-->2循环结束,程序跳出
eg: 1+2-3+4-5+6-7...+100,他的值是多少? int sum = 0; int i = 2 ;// 初始化部分 while (i <= 100){//循环条件部分 //奇偶数判定 3.循环体部分 if( i % 2 == 0){ sum =sum +i; }else{ sum = sum-i; } i++;// 4.迭代部分 循环变量的变化情况 } System.out.println(sum+1);
do-while循环
语法结构:
1.初始化部分
do{
3.循环体部分
4.迭代部分
}while(2.循环条件);
与while循环的区别: do-while循环体结构中的循环体代码会先执行一次,然后再判断循环条件是否成立
如果循环条件成立,那么程序会再次进入while循环结构中,执行循环体代码
如果循环条件不成立,那么循环结构语句结束,程序跳出该循环结构。
执行过程:
1-->3-->4-->2-->3-->4-->2-->3-->4-->2-->3......-->2循环结束
eg:求一下前100项能被3整除或者能被5整除或者能被7整除的但是不能被2整除的数的和。 //思路:do-while int i = 1; int sum = 0; do { if( i % 2 != 0 && (i % 3 == 0 || i % 5 == 0 || i % 7 == 0) ){ sum = sum + i; } i++; }while(i <= 100 ); //输出该规则下的前100项的和 System.out.println("该100项的和为" + sum);// 2328