1.循环结构:
重复性做某件事. 一般在Java中不能出现死循环(无限循环).
作用:减化代码量;维护方便.
2.循环结构组成部分:
循环初始条件:给循环变量赋初值.
循环判断条件:循环终止条件.
循环叠加条件:改变循环变量的值.
循环体:要重复执行的操作.
3.while循环:
解决先判断后执行的重复性操作问题.
3.1:语法: 循环初始条件;
while(循环判断条件){
循环体;
循环叠加条件;
}
3.2:执行流程:先执行循环初始条件,再执行循环判断条件,如果循环判断条件为false,就跳出循环结构,执行循环结构之后的语句;如果循环判断条件为true,就执行循环体和循环叠加条件,执行完后,再执行循环判断条件,后面重复蓝色字体部分.
3.3:while循环结构特点:
3.3.1:循环初始条件只在第一次执行一次;循环判断条件至少执行一次;循环体和循环叠加条件至少执行0次.
3.3.2:while循环先判断后执行.
3.3.2:while循环中,循环初始条件和循环判断条件不能省略;循环体可以省略;
循环叠加条件可以省略,只是省略之后变成死循环,一般情况下不能省略.
eg:public static void main(String[] args){
//循环初始条件
int i=1;
//循环判断条件
while(i<=100){
//循环体
System.out.println("第"+i+"次对不起");
//循环叠加条件
i++;
}
}
练习:1.输出1-10数字;
2.输出10-1数字;
3.输出1-100之间偶数之和
4.输出1-100之间既能初3整除,又能被7整除的数字之和
4.do-while循环:
解决先无条件执行一次,再判断再执行的重复性操作问题.
4.1:语法: 循环初始条件;
do{
循环体;
循环叠加条件;
}while(循环判断条件);
4.2:执行流程:先执行循环初始条件,再执行循环体和循环叠加条件,再执行循环判断条件,如果循环判断条件为false,就跳出循环结构,执行循环结构之后的语句;
如果循环判断条件为true,就继续执行循环体和循环叠加条件,再执行循环判断条件,重复蓝色字体部分.
4.3:do-while循环结构特点:
4.3.1:循环初始条件只在第一次执行一次;循环体和循环叠加至少执行1次,循环条件至少执行一次;
4.3.2:do-while循环,先无条件执行一次循环体和循环叠加条件,再判断再执行.
eg:public static void main(String[] args){
//获得具有从键盘上接收数据的能力
Scanner input=new Scanner(System.in);
//循环初值
String result="";
do{
//循环体
System.out.println("考试");
//循环叠加
System.out.println("考试是否合格(y表示合格,其他表示不合格):");
result=input.next();
//循环判断条件
}while(!result.equals("y"));
}
5.while VS do-while 的不同点:
5.1:while循环先判断后执行;do-while先无条件执行一次,再判断再执行;
5.2:while循环的循环体和循环叠加可以一次都不执行;do-while循环的循环体和循环叠加至少执行一次.
6.for循环:
解决先判断后执行,且循环次数固定重复性操作的操作.
6.1:语法:for(循环初始条件1;循环判断条件2;循环叠加条件3){
循环体;
}
6.2:执行流程:循环初始条件1->循环判断条件2->循环体->循环叠加条件3->循环判断条件2
6.3:for循环结构特点:
6.3.1:循环初始条件1只在第一次执行一次;循环判断条件2至少执行一次;循环体和循环叠加条件3至少执行0次.
6.3.2:for循环是先判断后执行.
6.3.3:for循环后面小括号中两个分号一定不能省略.
6.3.4:for循环中,循环初始条件1不能直接省略,如果想省略可以在for循环前写;
循环判断条件2可以直接省略,只是省略后变成死循环;
循环叠加条件3可以直接省略,只是省略后变成死循环;如果既是那个省略循环叠加条件3,又不想变成死循环,可以将循环叠加条件放在循环体后面.
for循环中三个条件可以一起省略,只是省略后变成死循环.
eg:public static void main(String[] args){
for(int i=1;i<=100;i++){
//循环体
System.out.println("第"+i+"次对不起");
}
}
7.for ,while,do-while
7.1作用不同:for一般用来解决先判断后执行,且循环次数固定的重复性问题
while一般用来解决先判断后执行,循环次数不固定的重复性问题
do-while一般用来解决先无条件执行一次循环体,再判断,再执行重复性问题
7.2:循环体执行不同:for循环和while循环的循环体可能一次都不执行
do-while循环的循环体至少执行一次
8.嵌套循环结构:
在一个循环结构的大括号中,完整包含了另一个循环结构叫嵌套循环结构.
8.1:所有循环结构之间可以任意嵌套,嵌套要正确.
8.2:循环结构之间可以多层,一般目前两层嵌套较多.
8.3:嵌套循环结构的执行特点:外层循环结构循环一次,内层循环结构要从头到尾循环.
eg:public static void main(String[] args){
//获得具有从键盘上接收数据的能力
Scanner input=new Scanner(System.in);
//外层循环控制班级
for(int j=1;j<=3;j++){
//从键盘上接收一个班四名学员成绩
for(int i=1;i<=4;i++){
System.out.println("请输入第"+i+"名学生的成绩:");
double score=input.nextDouble();
}
}
}
9.break:跳出结构.
9.1:break作用:跳出switch结构;跳出当前这一个循环结构;
eg:public static void main(String[] args){
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 4; j++) {
if (j == 2) {
break;
}
System.out.println("i=" + i + ",j=" + j);
}
System.out.println("======");
}
}
9.2:break跳出指定标记结构:
语法: 标记名:结构
break 标记名;
eg:public static void main(String[] args){
//获得具有从键盘上接收数据的能力
Scanner input=new Scanner(System.in);
//外层循环控制班级,给外层循环作标记
a:for(int j=1;j<=3;j++){
System.out.println("请输入第"+j+"个班级的学生成绩:");
//内层循环从键盘上接收一个班四名学员成绩
for(int i=1;i<=4;i++){
System.out.println("请输入第"+i+"名学生的成绩:");
double score=input.nextDouble();
//判断成绩是否符合要求
if(score<0){
break a;//跳出指定标记结构
}
}
}
}
10.(知道会用,不是重点)continue:只能用在循环结构.
10.1:continue的作用:结束当前循环结构的本次循环,进入下一次循环
eg:public static void main(String[] args){
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 4; j++) {
if (j == 2) {
continue;
}
System.out.println("i=" + i + ",j=" + j);
}
System.out.println("======");
}
}
10.2:continue可以结束标记结构本次循环,进入下一次循环.
语法: 标记名:结构
continue 标记名;
eg:public static void main(String[] args){
//获得具有从键盘上接收数据的能力
Scanner input=new Scanner(System.in);
//外层循环控制班级
b:for(int j=1;j<=3;j++){
System.out.println("请输入第"+j+"个班级的学生成绩:");
//内层循环从键盘上接收一个班四名学员成绩
for(int i=1;i<=4;i++){
System.out.println("请输入第"+i+"名学生的成绩:");
double score=input.nextDouble();
//判断成绩是否符合要求
if(score<0){
continue b;//结束外层循环本次录入,接收外层循环下一次录入人
}
System.out.println("请继续录入");
}
}
}