一、本章目标
- 理解循环的含义
- 会使用while循环结构
- 会使用do-while循环结构
- 会使用调试解决简单的程序错误
二、内容
1 循环结构
1.1 为什么需要循环结构
问题:
张浩Java考试成绩未达到自己的目标。为了表明自己勤奋学习的决心,他决定写一百遍“好好学习,天天向上!”
普通做法:
System.out.println("第1遍写:好好学习,天天向上!");
System.out.println(“第2遍写:好好学习,天天向上!");
……
System.out.println(“第100遍写:好好学习,天天向上!");
循环
public class WhileDemo1 {
public static void main(String[] args) {
String str="好好学习,天天向上";
int i=1;
while (i<=100) {
System.out.println("第"+i+"次写:"+str);
i++;
}
}
}
1.2 什么是循环结构
在什么条件成立时,不断地做什么事情
2 while循环
2.1 什么是while循环结构
语法
while ( 循环条件 ) {
循环操作
}
流程图
特点:先判断,再执行
2.2 如何使用while循环
问题1:实现打印50份试卷
思路
- 确定循环条件和循环操作
- 套用while语法写出代码
- 检查循环是否能够退出
实现
public class WhileDemo {
public static void main(String[] args) {
int i=1;
while (i<=50) {
System.out.println("打印第"+i+"份试卷");
i++;
}
}
}
问题2:
- 老师每天检查张浩的学习任务是否合格,如果不合格,则继续进行。
- 老师给张浩安排的每天的学习任务为:上午阅读教材,学习理论部分,下午上机编程,掌握代码部分。
分析
- 分析是否存在重复操作:每天
- 使用while循环实现
- 确定循环条件(学习任务是否合格)和循环操作(上午阅读教材,学习理论部分,下午上机编程,掌握代码部分)
- 套用while语法写出代码
- 检查循环是否能够退出
代码
public class WhileDemo2 {
public static void main(String[] args) {
System.out.print("合格了吗?(y/n):");
Scanner input = new Scanner(System.in);
String answer = input.next();
while("n".equals(answer)){
System.out.println("上午阅读教材!");
System.out.println("下午上机编程! ");
System.out.print("合格了吗?(y/n):");
answer = input.next();
}
System.out.println("完成学习任务!");
}
}
注:equals:比较两个String类型的值是否相等
3 技能训练
3.1 计算100以内的偶数之和
需求说明
- 编程实现:计算100以内(包括100)的偶数之和
实现思路
(1)声明并初始化循环变量:int num=0;
(2)分析循环条件和循环操作:
循环条件:num<=100,i=i+2
循环操作:累加求和、改变循环变量的值。
(3)套用while语法写出代码。
代码
public class EvenSum {
/*
* 计算100以内偶数之和
*/
public static void main(String[] args) {
int sum = 0; // 当前之和
int num = 2; // 加数
while (num <= 100) {
sum = sum + num; // 累加
num = num + 2;
}
System.out.println("100以内的偶数之和为:" + sum);
}
}
3.2 查询商品价格
需求说明
- 循环输入商品编号,显示对应的商品价格
- 输入“n”结束循环
实现思路
(1)分析循环条件和循环操作:
循环条件:用户输入“n”时退出循环,
循环操作:输入商品编号,显示对应的商品价格。
(2)套用while语法写出代码。
实现代码
public class PriceLookup {
/*
* 商品价格查询
*/
public static void main(String[] args) {
String name = ""; // 商品名称
double price = 0.0; // 商品价格
int goodsNo = 0; // 商品编号
System.out.println("MyShopping管理系统 > 购物结算 ");
// 商品清单
System.out.println("*******************************************");
System.out.println("请选择购买的商品编号:");
System.out.println("1.T 恤 2.网球鞋 3.网球拍");
System.out.println("*******************************************");
Scanner input = new Scanner(System.in);
String answer = "y"; // 标识是否继续
while ("y".equals(answer)) {
System.out.print("请输入商品编号:");
goodsNo = input.nextInt();
switch (goodsNo) {
case 1:
name = "T 恤";
price = 245.0;
break;
case 2:
name = "网球鞋";
price = 570.0;
break;
case 3:
name = "网球拍";
price = 320.0;
break;
}
System.out.println(name + " " + "¥" + price + " ");
System.out.print("是否继续(y/n)");
answer = input.next();
}
System.out.println("程序结束!");
}
}
4 do-while循环
4.1 为什么需要do-while循环
经过几天的学习,老师给张浩一道测试题,让他先上机编写程序完成,然后老师检查是否合格。如果不合格,则继续编写。……
4.2 什么是do-while循环
语法
do {
循环操作
} while ( 循环条件 );
流程图
特点
先执行,再判断
4.3 如何使用do--while循环
使用步骤:
- 分析循环条件和循环操作
- 套用do-while语法写出代码
- 检查循环能否退出
解决上面问题
public class DoWhileDemo {
/*
* 如何使用do-while循环
*/
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String answer = ""; // 标识是否合格
do {
System.out.println("上机编写程序!");
System.out.print("合格了吗?(y/n)");
answer = input.next();
System.out.println("");
} while (!"y".equals(answer));
System.out.println("恭喜你通过了测试!");
}
}
关注我们
良师益友工作室一直在致力于帮助编程爱好更加快速方便地学习编程,如果您对我们的成果表示认同并且觉得对你有所帮助,欢迎您对我们捐赠^_^。