+ -
当前位置:首页 → 问答吧 → 新手求教

新手求教

时间:2011-12-07

来源:互联网

给出一个百分制的成绩,要求输出成绩等级A,B,C,D,E。90分以上为A,80到89为B,70到79为C,60到69为D,60以下为E。
这是我刚学完选择语句和循环语句后面的联系题。用if语句好实现。现在请问可以用switch语句比if语句更简单的实现吗?或者是用if语句就是最简单的了?

作者: icbc_atm   发布时间: 2011-12-07

一般来说,用if还是switch,取决于判断条件是否为常量,
是,则优先用switch,否,优先用if。

case语句中要求的是常量,一般是不能进行逻辑判断的,所以如果条件不是常量的话,用if语句优于switch语句。

单单拿楼主的这道题来说,由于判断条件是常量,肯定要优先用switch比较好!

而如果写成if(){...}else if(){...}else{...}这种形式,则if语句内部还是会转换成switch形式来执行的。

所以建议楼主写这道题采用switch方式。

作者: bazzi2011   发布时间: 2011-12-07

引用 1 楼 bazzi2011 的回复:而如果写成if(){...}else if(){...}else{...}这种形式,则if语句内部还是会转换成switch形式来执行的。


这个说法有可靠依据?

作者: yisikaipu   发布时间: 2011-12-07

引用 2 楼 yisikaipu 的回复:
引用 1 楼 bazzi2011 的回复:而如果写成if(){...}else if(){...}else{...}这种形式,则if语句内部还是会转换成switch形式来执行的。

这个说法有可靠依据?


这是 林锐 的书中说的,书中说道:

if语句只有
if
else
形式

没有
if
else if 
else 
形式

也就是说else if这句话其实相当于另外一个新的if语句,即:
if
if
else
这样的形式





作者: bazzi2011   发布时间: 2011-12-07

呵呵,楼上,这与我#2楼的疑问不是一回事吧

作者: yisikaipu   发布时间: 2011-12-07

引用 4 楼 yisikaipu 的回复:
呵呵,楼上,这与我#2楼的疑问不是一回事吧


所谓按照switch的方式来处理,意思是按照和switch差不多的办事手法来进行代码运行,而不是用switch语句来处理,明白?

作者: bazzi2011   发布时间: 2011-12-07

围观............

作者: chester1   发布时间: 2011-12-07

哈哈 哈哈 哈哈

作者: chengzhe   发布时间: 2011-12-07