购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

任务2.3
班级成绩统计

【任务分析】

为了考查同学们对课程内容的掌握情况,希望对班级成绩按优、良、中、不及格四个等级分别统计学生人数。若要完成些任务,则需要对每位同学的成绩进行分析判断并进行统计,程序中需要重复同样的操作若干次,这类程序就应该使用 循环结构 去实现。

【基本知识】

循环语句的作用是重复执行一段程序代码,直到循环条件不再成立为止。被重复执行的语句称为 循环体 。Java提供的循环语句有 while 语句、 do while 语句和 for 语句三种。

2.3.1 循环结构实现

视频2-4

Java中三种循环语句的语法格式及执行过程如表2-10所示。

表2-10 循环语句的语法格式及执行过程

(续)

【例2-9】 分别用while、do while、for三种循环语句计算1+2+3+…+100,比较三种循环语句的使用。

说明:

1)三种循环语句中for循环语句是一个结构紧凑且应用灵活的循环语句,其中的三个表达式均可省略;但分号不能省略。for语句的以下几种写法在语法上都是正确的。

2)设计循环结构程序时,一定注意循环条件的设置,避免死循环(循环无限次执行)的发生。

【例2-10】 假设一张足够大的纸,厚度为0.5mm。问对折多少次以后,可以达到珠穆朗玛峰的高度?(珠穆朗玛峰2020年测试高度为8848.86m,此次测量采用北斗卫星和人工测量方式,测量精度达到毫米级别)

以上代码也可以用while或do while语句改写。

2.3.2 循环嵌套

在一个循环体语句中又包含另一个循环语句,称为循环嵌套。内嵌的循环中还可以再嵌套循环,这就是多层循环。例如,下面计算1!+2!+…+9!+10!值的程序段就使用了循环语句的嵌套。

三种循环(while、do while、for)都可以嵌套而且可以相互嵌套。在循环的嵌套使用中,一定注意嵌套层次的关系,防止各层次间出现交叉套叠的情况。规范使用代码的缩进书写形式,可清楚地表达嵌套的层次关系。

【例2-11】 打印九九表,形如:

本程序使用了两层循环,外循环控制行,内循环处理一行的数据。

2.3.3 其他程序流程控制语句

除选择结构和循环结构语句外,还有三种流程跳转语句:break、continue和return。这些语句也能够改变程序执行的流程。

1.break语句

在Java中,break语句可用于switch引导的分支结构以及以上3种循环结构,用来强制跳出switch语句或终止循环。

在循环语句中,break语句可直跳出循环体语句,终止循环语句的执行,继续执行循环结构后面的语句。在循环体中,break语句一般要与if语句配合使用,其语法格式如下。

【例2-12】 利用break语句终止循环。

程序中尽管for语句的循环体被设计为重复执行100次,但是当i==10的条件满足时,break语句就终止了for循环。

break同样可以用于while语句和do while语句,将【例2-12】用while或do while语句改写一下,会得到同样的输出结果。

2.continue语句

continue语句只能出现在循环体语句中,作用是跳过当前循环中continue语句以后的循环体语句,直接开始下一轮循环。continue语句一般也要与if语句配合使用,其语法格式如下。

在for循环结构中,当程序执行到continue语句时,忽略循环体中后面的语句,直接跳到 表达式3 执行,然后开始下一轮循环。在while和do while语句中,执行到continue语句时,马上转去执行循环控制表达式语句,从而开始下一轮循环。

【例2-13】 输入一组数据,输出其中的负数。若输入0,则结束循环。

程序中,break语句用于终止循环,结束程序,而continue语句则是终止了本次循环体语句的执行,返回到循环的开始处重新接收数据。

3.return语句

Java中的return语句总是用在方法中。return语句可以使程序流程从当前方法中退出,返回到调用该方法的语句处,继续程序的执行。return语句有以下两种格式。

第一种格式返回一个值给调用该方法的语句,返回值的数据类型必须与方法声明中的返回值类型一致。

第二种格式使程序流程返回到被调用处,不返回任何值,一般用于方法说明中用void声明返回类型为空的情况。

2.3.4 循环结构应用

【例2-14】 设计程序,模拟登录系统的密码验证过程,允许用户最多输入三次密码,若三次都不正确,则不允许登录。

说明: 输入三次密码都不正确,使用break退出循环。

【例2-15】 求3~100间的所有素数。

该程序结构是一个二重循环,内层循环判断数据i是否为素数,如果不是素数,则将isPrime的值赋为0;外层循环使得数据i从3变化到100。两层循环配合就求出了3~100之间的所有素数。

【例2-16】 求Fibonacci数列:1,1,2,3,5,8,…的前20个数。

这是一个递推问题,该数列可以用一个通式表示为:

f 1 =1     ( n =1)

f 2 =1     ( n =2)

f n = f n -1 + f n -2 ( n ≥3)

程序如下:

运行结果为:

1 1 2 3 5 8 13 21 34 55

89 144 233 377 610 987 1597 2584 4181 6765

【任务实施】

任务2-3

对全班同学的成绩进行分类统计,编写程序之前要确定以下三个要素。

1)循环条件:根据学生人数确定循环次数。

2)循环体:对每位同学的成绩进行分析判断并进行分类统计。

3)循环控制:设置循环变量,控制循环次数。

假设班级有40名同学,可使循环变量在1~40中取值,控制循环结构的执行,具体程序代码请扫描二维码下载。

该任务也可以用while或do while语句完成。

【同步训练】

设计简易计算器,完成对任意两数的加、减、乘、除运算,且可以进行反复运算,直到选择退出程序。程序运行界面如图2-5所示。

工单2-3

图2-5 程序运行界面 w+9hn6/uM5mY1l24um7XFxQdE7xjm4fdaBRXSkfqYSlqrxWtrhkBXZ7szWnewWQB

点击中间区域
呼出菜单
上一章
目录
下一章
×