Java程序设计基础笔记 • 【第5章 循环结构】
本章目录
5.1 while循环结构
5.1.1 循环简介
(1)反复执行某些代码的程序处理过程称为循环。
(2)循环结构存在以下两个特点:
- 循环不是无休止进行的,满足一定条件时,循环才会继续,称之为“循环条件”。
- 循环是反复执行相同类型的一系列操作,称为“循环操作”或“循环体”。
循环 |
循环条件 |
循环操作 |
打印20份试卷 |
试卷数量小于20 |
打印一份试卷,已打印试卷数量加一 |
滚动的车轮 |
未到达目的地 |
车轮滚动一圈,离目的地更近 |
5.1.2 while循环
while循环是Java语言中比较常用的循环结构之一,先判断循环条件,再执行循环操作语句。
语法:
while(循环条件)
{
循环操作;
}
while 是Java语言中的关键字。
循环条件通常是具有boolean类型值的关系表达式或逻辑表达式。
循环操作可以是一条简单语句,也可以是由多条语句构成的复合语句,当仅存在一条语句时,括号可以省略。
在while 循环中,若循环条件开始即为假,则循环体一次也不执行。
示例:编写Java 程序,复印36份试卷。
int count = 1; //循环计数器初始为1
while(count<=36) {//循环终止条件为达到36
System.out.println("复印第"+count+"份试卷"); //循环内容
count++;//改变循环条件,已复印试卷加1 //计数器累加
}
5.1.3 while循环的使用
在某些循环操作中,表达式和循环条件存在一定的关系
示例:计算1~100之间的整数和。
int count=1,sum=0;
while(count<=100) {
sum +=count; //累加求和
count++; //条件改变,被加入sum中的值也会递增
}
System.out.println("1~100的整数之间的和为:"+sum);
5.1.4 while循环的注意事项
使用循环不仅可以简化代码,还可以解决许多我们之前力所不能及的问题,但在使用循环结构时很容易出现一些问题。
错误一:循环一次也不执行
错误二:循环执行次数错误
错误三:死循环
5.1.5 实践练习
5.2 深入理解while循环
5.2.1 使用while 循环实现数字统计
问题描述:在控制台中输入用户年龄,直到输入的数字为正确的年龄为止。
循环条件:年龄数据如果不在正确的范围内,即为小于0岁或大于130岁。
循环操作:给用户错误提示、重新输入年龄。
Scanner sc = new Scanner(System.in);
System.out.println(" 请输入用户的年龄 [0-130]");
// 获取用户输入的年龄
int age = sc.nextInt();
// 如果年龄不在正确范围则执行循环
while(age <=0 || age >= 130){
// 错误提示
System.out.println(" 请输入正确的年龄 [0-130]");
// 重新获取年龄
age = sc.nextInt();
}
// 打印正确的年龄
System.out.println(" 您输入的年龄为 " + age + " 岁 ");
5.2.2 使用while循环计算存款利率
问题描述:本金10000 元存入银行,年利率是千分之三,每过1 年,将本金和利息相加作为新的本金。账户本金需要多少年可以超过12000 元。
循环条件:账户本金 <= 12000
循环操作:计算下一年账户本金、存款年份累加1
double balance = 10000; //账户本金
double rate = 0.03;//年利率
int years = 0;//存款年限
//使用循环计算
while (balance <= 12000) {
balance += balance * rate;//进行下一年的本金(当前本金+利息)
years++;//存款年限累加
System.out.printf("%d年之后,账户本金:%.2f\n", years, balance);
}
System.out.println("存款" + years + "后,账户本金将超过12000");
5.2.3 使用while循环计算游戏数据
问题描述:王者荣耀游戏中,己方队员为5人。通过输入每个队员的推塔数统计出最多的推塔数。
循环条件:统计的队员数量为5人以内。
循环操作:输入队员推塔的数量、判断是否大于已有的最大值,如果是则将值赋值给最大值变量,保证最大值变量里永远都是最大值。
Scanner sc = new Scanner(System.in);
int count = 1;//用来记录循环的次数
int max = 0;//用来记录最大推塔数
while(count <= 5){//如果循环次数是6以内则执行循环
System.out.printf("请输入第%d个队员的推塔数量\n",count);
int num = sc.nextInt();
//如果当前队员的推塔数比最大值大,则将当前推塔数保存到最大推塔数变量
if(num > max){
max = num;
}
count++;//比较完当前队员推塔数后,改变循环变量
}
System.out.printf("本局推塔数最多的为%d",max);
5.2.4 实践练习
5.3 do-while循环
5.3.1 do-while循环语法结构
与while 循环不同,do-while 循环先执行循环操作语句,再判断循环条件,即使循环条件不成立,循环体也至少执行一次。
do
{
循环操作;
}while(循环条件);
while(循环条件)之后的分号“;”不能省略。
循环条件通常是具有boolean类型值的关系表达式或逻辑表达式。
do-while循环执行过程:
先执行一次循环操作,再计算循环条件的结果,若为真,则循环条件成立,执行循环操作,重复上述过程,直到循环条件的结果为假时退出do-while 循环,转而执行do-while 循环之后的语句。
5.3.2 do-while循环的使用
示例:编写程序模拟学生考试,学生先考试,如果成绩没有及格,则继续考试,反之则结束。
int score;
Scanner input = new Scanner(System.in);
do {
System.out.println("学生参加考试!");
System.out.print("老师请输入学生考试成绩:");
score = input.nextInt();
} while(score<60);
System.out.println("恭喜你,考试成绩合格!");
示例:计算1-100之间所有自然数之和。
int count = 1, sum = 0;
do {
sum += count;
count++;
} while (count <= 100);
System.out.println("1-100自然数之和:" + sum);
5.3.3 while循环与do-while循环区别
|
while循环 |
do-while循环 |
|
相同点 |
实现循环结构 |
||
适用于循环次数未知的情况 |
|||
不同点 |
while(循环条件) { 循环操作; } |
do { 循环操作; } while(循环条件); |
|
先判断后执行 |
先执行后判断 |
||
一开始循环条件为假,循环一次也不执行 |
一开始循环条件为假,循环一次也不执行 |
5.3.4 实践练习
5.4 深入理解do-while循环
5.4.1 使用do-while循环模拟ATM机菜单项
问题描述:在控制台中模拟ATM机菜单项的选择。
循环条件:用户选择的菜单项不是“退出”
循环操作:显示菜单项列表、根据用户选择的菜单项,显示对应信息
do {
System.out.println("【1】查询余额");
System.out.println("【2】取款和转账");
System.out.println("【3】存款");
System.out.println("【4】退出");
System.out.println("请选择:");
choose = sc.next();
switch (choose) {
case "1":
System.out.println("欢迎使用查询余额模块");
break;
//省略其他case及default
}
} while (!"4".equals(choose));//如果用户选择的不是4则继续循环
5.4.2 使用do-while循环求各位数之和
问题描述:输入一个数字(不限定位数),计算该数字的各位数字之和。
数字中各个位置上的数字分离过程如下:
数字 397。
分离个位:397%10=7;
分离十位:397/10=39; 39%10=9。
分离百位:39/10=3; 3%10=3。
Scanner sc = new Scanner(System.in);
int num;// 用户输入的数字
int temp;// 存储分离出来的数字
int sum = 0;// 存储各位数字之和
System.out.println(" 请输入一个数字(不限定位数):");
num = sc.nextInt();
do {
temp = num % 10;// 分离当前位置上的数字
sum += temp;// 累加各位数字
num = num / 10;
} while (num > 0);
System.out.printf(" 各位数字之和:%d", sum);
5.4.3 实践练习
总结:
- 循环结构由循环条件和循环操作构成,只要满足循环条件,循环操作就会重复执行。
- 使用循环解决问题的步骤为:分析循环条件和循环操作,套用循环结构的语法,检查循环能否退出。
- 编写循环结构代码时要注意,循环变量的初值和结束条件,确保循环次数正确;检查循环条件能否使循环结束,避免出现死循环。
- while循环结构的特点是先判断,后执行循环体。do-while循环的特点是先执行循环体,然后判断循环条件。
上一篇: 循环结构程序设计 实验题目
下一篇: Java基础篇--循环结构