一、循环的理解
1.理解:通过某个条件,重复并且有规律的执行一段代码
2.循环的组成部分:循环变量的初始化、循环条件、循环变量的改变、循环体
3.循环分类:while循环、do...while循环、for循环
二、while循环
1.语法:
//循环变量的初始化
while(循环条件){
//循环体
//循环变量改变
}
2.执行原理:
先执行循环的初始化,接着判断循环条件,如果条件满足-结果为true,执行{}中循环体,从而执行循环变量改变,再次判断循环条件,如果满足-结果为true,执行{}中循环体,从而执行循环变量的改变,再次判断循环条件...执行循环条件不满足,结果为false,终止、结束整个循环结构,继续执行后续代码...
3.特点:
(1)先判断,再执行,执行次数 0~n次
(2)如果循环的控制不合理,可能会出现死循环
//打印输出所有能被5整除,但是不能被3整除的四位数
int i=1000;
while(i<=9999){
if(i%5==0&&i%3!=0)
System.out.println("i="+i);
i++;
}
//计算100~335之间 能被7整除的所有数据之和
int i=100;
int he=0;
while(i<=335){
if(i%7==0)
he+=i;
i++;
}
System.out.println("sum="+he);
三、do...while循环
1.语法:
//循环变量的初始化
do{
//循环体
//循环变量的改变
}while(循环条件);//分号不能省
2.执行原理:
先执行循环变量的初始化,接着执行循环体,同时循环变量改变,然后判断循环条件,条件满足,则再次执行循环体,循环变量的改变,再次的判断循环条件...直到循环条件不满足,结果为false,终止
Scanner sc=new Scanner(System.in);
char result;
do{
System.out.println("作业检查中");
System.out.println("输入作业检查的结果:y-通过,非y代表不通过");
result=sc.next().charAt(0);
}while(result!='y'&&result!='Y');
System.out.println("恭喜作业通过");
四、for循环
1.语法:
for(循环变量的初始化;循环条件;循环变量的改变){
//循环体
}
2.执行原理:
3.执行特点:
(1)先判断,再执行,执行的次数0~n次
(2)循环变量的初始化代码可以定义在for上面,此时循环变量的作用范围扩大了,不建议
(3)循环条件没有,则默认为true
循环的总结:
while循环和for循环特定:先判断,再执行
do...while循环:先执行,再判断
后期开发:
while循环:当循环次数不确定时,建议使用while循环
for循环:当循环的次数明确时,建议使用for循环
//利用scanner重复输入5个学生成绩,并打印当前学生成绩
Scanner sc=new Scanner(System.in);
System.out.println("请输入五个学生成绩:");
double score;
for(int i=1;i<=5;i++){
score=sc.nextDouble();
System.out.println(score);
}
//输入五个学生的成绩,并计算平均成绩
System.out.println("请输入五个学生成绩:");
int score;
int he=0;
for(int j=1;j<=5;j++){
score=sc.nextInt();
he+=score;
}
double pingjun=he/5;
System.out.println("这五个学生的平均成绩是:"+pingjun);
五、循环的控制语句
1.break:终止、结束当前的循环;可以应用在switch...case中,用于防止case穿透
2.continue:中止、结束本次循环,从而进入下一次循环。
for(int i=1;i<=5;i++){
if(i==3){break;}
System.out.println("i="+i);//1 2
}
for(int j=1;j<=5;j++){
if(j==3){continue;}
System.out.println("j="+j);// 1 2 4 5
}
六、循环的嵌套
1.理解:再循环结构中,定义完整的循环结构
2.循环嵌套时,循环次数:外层循环次数*内层循环次数
3.循环控制语句应用循环嵌套中:
break:终止、结束本层循环
continue:中止、结束本层的本次循环,从而进入本层下一次循环
4.利用循环打印图形:通常使用外层循环控制行,内层循环控制列
//三角形
for(int i=1;i<=10;i++){
for(int j=1;j<=10;j++){
System.out.print("*");
}
System.out.println();//换行
}
System.out.println("请输入一个行数:");
int n=sc.nextInt();
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
System.out.print("* ");
}
System.out.println();
}
//等腰三角形
System.out.println("请输入一个行数:");
int hang=sc.nextInt();
for(int i=1;i<=hang;i++){
for(int z=1;z<=hang-i;z++){
System.out.print(" ");//输出空格
}
for(int j=1;j<=(2*i-1);j++) {
System.out.print("*");//输出*号
}
System.out.println();
}