基本信息
文件名称:「Java流程控制」for循环结构.docx
文件大小:1.73 MB
总页数:8 页
更新时间:2025-07-02
总字数:约2.7千字
文档摘要

PAGE232

假设有一家蛋糕店,每天要生产50个蛋糕。每个蛋糕的制作都需要:

准备模具(初始化)

检查是否还需要生产(条件判断)

倒入面糊(循环体执行)

记录已生产数量(迭代)

for循环就像这个标准化的生产过程,把重复性的工作安排得井井有条。

for语法结构

for循环结构把循环控制的三个关键要素集中放在一行,比while循环更加紧凑明了。就像流水线的控制面板,所有调节按钮都集中在一个区域,操作起来特别方便。

案例解析

学生成绩统计

编写一个程序,统计一个班级学生的平均分。

运行结果

依次输入班级人数和学生成绩

请输入班级人数:5

请输入第1个学生的成绩:65

请输入第2个学生的成绩:36

请输入第3个学生的成绩:96

请输入第4个学生的成绩:49

请输入第5个学生的成绩:86

班级平均分是:66.4

代码解析

先询读取班级人数,确定循环次数。

初始化计数器i=1,这是学生人数的计数器。

每次循环读取一个学生成绩并累加到总成绩totalScore。

计数器i自动增加,直到超过学生人数时结束循环。

最后计算并输出平均分,并格式化输出。

这个例子展示了for循环最适合的场景:已知循环次数的重复操作。就像知道要生产多少个蛋糕,按数量一个个制作。

智能温度转换器

编写程序,把最近一周的摄氏温度转换为华氏温度。

运行结果

依次输入一周7天的温度

请输入最近7天的摄氏温度:

第1天温度:28

第2天温度:26

第3天温度:27

第4天温度:28

第5天温度:29

第6天温度:30

第7天温度:26

温度转换结果:

天数摄氏华氏

128.082.4

226.078.8

327.080.6

428.082.4

529.084.2

630.086.0

726.078.8

代码亮点:

第一个for循环收读取户输入的温度数据

第二个for循环进行批量转换计算

使用printf格式化输出,保持表格对齐

数组索引从0开始,但显示给用户时从1开始

这个案例比简单的计数循环更实用,展示了for循环处理数组的天然优势

常见错误及解决方法

死循环陷阱

解决方法:检查迭代条件,确保循环变量朝着结束条件方向变化。

作用域问题

解决方法:理解循环变量的作用域仅限于循环内部,外部需要使用时要提前声明。

分号位置错误

错误原因:结果编译报错,怎么回事?问题出在那个多余的分号上,它让for循环变成了空语句。

解决方法:注意for语句后面不要误加分号,这会导致循环体变成空语句。应该改成:

数组越界

错误原因:数组的下标从0开始,int[]scores=newint[5];数组下标从0开始到4结束,当i=5时,scores[i]=i*10;等价于scores[5]=5*10;数组越界,出现错误。

解决方法:记住数组索引是从0开始的,应该改成:

综合练习题

理论题

下面代码输出什么?为什么?

答案:输出024,因为循环变量每次增加2

如何用for循环实现从100倒数到1?

答案:for(inti=100;i=1;i--){}

比较for循环和while循环各适合什么场景?

答案:for适合已知循环次数的情况,while适合条件复杂或次数不确定的情况。

下面这段代码会输出什么?

答案:输出10741,因为每次循环i减少3。

如果要遍历字符串中的每个字符,应该怎么写循环?

示例

为什么下面的循环不会结束?

解析:浮点数精度问题导致d永远不会精确等于1.0,应该改为d=1.0。

实战编程题

编写程序计算1到100所有奇数的和

运行结果

奇数和:2500

改进成绩统计程序,增加最高分和最低分统计功能

运行结果

依次输入班级人数和学生成绩

请输入班级人数:5

请输入第1个学生的成绩:65

请输入第2个学生的成绩:36

请输入第3个学生的成绩:96

请输入第4个学生的成绩:49

请输入第5个学生的成绩:86

班级平均分是:66.4

最高分:96.0

最低分:36.0