探索面向对象编程

探索面向对象编程

(一)编程实现

方法一、采用并列式多分支结构评定成绩等级

思路:有多少种情况,就并列写多少个单分支

第1个分数段:s c o r e > 100 , s c o r e ∈ ( 100 , + ∞ ) score > 100,score\in(100,+\infty)score>100,score∈(100,+∞) - 超出范围

第2个分数段:90 ≤ s c o r e ≤ 100 , s c o r e ∈ [ 90 , 100 ] 90 \le score \le 100,score \in [90,100]90≤score≤100,score∈[90,100] - 优秀

第3个分数段:80 ≤ s c o r e < 90 , s c o r e ∈ [ 80 , 90 ] 80 \le score \lt 90,score \in [80,90]80≤score<90,score∈[80,90] - 良好

第4个分数段:70 ≤ s c o r e < 80 , s c o r e ∈ [ 70 , 80 ] 70 \le score \lt 80,score \in [70,80]70≤score<80,score∈[70,80] - 中等

第5个分数段:60 ≤ s c o r e < 70 , s c o r e ∈ [ 60 , 70 ] 60 \le score \lt 70,score \in [60,70]60≤score<70,score∈[60,70] - 及格

第6个分数段:0 ≤ s c o r e < 60 , s c o r e ∈ [ 0 , 60 ] 0 \le score \lt 60,score \in [0,60]0≤score<60,score∈[0,60] - 不及格

第7个分数段:s c o r e < 0 , s c o r e ∈ ( − ∞ , 0 ) score \lt 0,score \in (-\infty,0)score<0,score∈(−∞,0) - 超出范围

在net.nieyourong.p02.t03.Task03_1
在这里插入图片描述
在这里插入图片描述

怎么解决这个问题呢?很简单,在处理部分之前将level初始化为空字符串
在这里插入图片描述

运行程序,查看结果(测试七种情况)

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结:并列式多分支结构,优点是易于理解,但缺点是效率低(思考一下,为什么效率低)。

其实,这个程序可以作点优化,因为成绩大于100分或小于0分都是超出范围,所以可以将这两个并列的分之合而为一
在这里插入图片描述

方法二、采用嵌套多分支结构评定成绩等级

思路:从高分到低分来划分各个分数段

在net.nieyourong.p02.t03包Task03_2
在这里插入图片描述
在这里插入图片描述

运行程序,查看结果(测试七种情况)
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结:嵌套式多分支结构,优点是层次

方法三:采用延拓式多分支结构评定成绩等级

思路1:从高分到低分划分各个分数段

在net.nieyourong.p02.t03包里创建Task03_3类
在这里插入图片描述
在这里插入图片描述

运行程序,查看结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

思路2:从高分到低分划分各个分数段

在net.nieyourong.p02.t03包里创建Task03_3_类

在这里插入图片描述在这里插入图片描述

运行程序,查看结果 (测试七种情况)
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结:延拓式多分支结构,优点是只有一层,并且效率高。希望大家掌握这一种方式。

方法四、采用开关式多分支结构评定成绩等级

关键点在于将成绩变量取整之后再整除10,以便将各个分数段转换成离散的整数值,这样才能用开关式多分支结构来进行处理

在net.nieyourong.p02.t03包里创建Task03_4_类
在这里插入图片描述
在这里插入图片描述

运行程序,查看结果

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结:开关式多分支结构,优点是书写简洁,并且效率高,但缺点是只能针对离散型的情况进行处理。

开关式多分支结构里的测试表达式,类型可以是整数、字符、甚至可以是字符串

(二)讲解知识点

多分支结构可有四种处理方式:并列式、嵌套式、延拓式、开关式

1、并列式多分支结构

if (条件1) {
语句组1
}
if (条件2) {
语句组2
}
……
if (条件n) {
语句组n
}

2、并列式多分支结构

if (条件1) {
语句组1
}
if (条件2) {
语句组2
}
……
if (条件n) {
语句组n
}

3、延拓式多分支结构

if (条件1) {
语句组1
} else if (条件2) {
语句组2
}
……
} else if (条件n) {
语句组n
} else {
语句组n+1
}

4、开关式多分支结构

switch (测试表达式) {
case 值1:
语句组1
break;
case 值2:
语句组2
break;
……
case 值n:
语句组n
break;
default:
语句组n+1
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值