if课件代码,折扣输出语句建议放在if语句块里显得更加合理

if课件代码,折扣输出语句建议放在if语句块里显得更加合理

教学视频截图:

https://img1.sycdn.imooc.com//climg/61b4b2c7095a007803400092.jpg


老师已经在视频里提过折扣价格放在if语句块里输出也可以,但放在if语句外有个很不顺眼的地方在于如果两个物品价格小于100,那原价就会输出两次。所以仅仅为个人建议,作为教学目的来说,老师应该建议大家把折扣的输出语句放在if语句块里,这样的好处就是如果两个物品价格小于100,仅会输出原价一次,不小于100时显示原价和折扣价。


(求生欲环节:我没有否定老师讲的不好,因为老师已经在视频里提过放在里面外面都可以,仅仅是建议老师做个补充说明里外的区别,毕竟0基础的教学代码不可能对每个地方都做到合理无bug)

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

    同学你好,老师从代码规范和代码逻辑的角度为同学解析这个问题:

    一、代码规范:在Java中,重复功能的语句不应当多次书写,尽量进行简化。简化的方式一般采用以下两种方式:

        1.当出现重复代码的时候,通常使用扩大适用范围的方式

        2.当出现重复功能的时候,将重复的功能进行提取,使用Java方法的形式进行封装。

    二、代码逻辑:当对同一个事物进行判断时,应当将逻辑闭合,避免重复判断

    综上两点,同学所指的代码最好的处理方式是:依然使用将打印语句写在if之外,但是多次if语句应当使用闭合逻辑,即if...else形式。而此处还为接触else的使用。所以此处必然要违反以上两点中的一种,要么将打印语句写在if内违反代码规范,要么写在外面违反代码逻辑。

    当后续接触到else的使用之后,就可以做到同时满足两点,所以老师为了代码的规范性,将打印语句写在了if外。

    建议同学以后写代码的时候也可以多思考一下代码的简洁性和重用性。

    祝学习愉快~

  • Macrohard 提问者 #1

    谢谢老师解答,“ 二、代码逻辑”这部分明白,“一、代码规范:2.当出现重复功能......”这部分也明白,所以此处老师遵循的代码规范就是“1.当出现重复代码的时候,通常使用扩大适用范围的方式”这个定义吗,但是这句话我并没有完全理解,百度了一下也没有解答,请问老师能否具体举个小例子,谢谢!!!

    2021-12-12 15:52:33
  • 好帮手慕小蓝 回复 提问者 Macrohard #2

        同学你好,老师针对同学的疑问举个小案例:

        假设有一个功能,需要判断用户输入的是几位数,比如输入的是3124,则输出“4位数”。

    这样的功能中,假如我们使用最简单的数字范围判断的话,就需要多个if语句,那么打印语句就是“重复的代码”。我们可以使用声明标记变量的方式,使得代码中尽量少的出现打印语句。比如声明一个int类型的变量flag,如果是三位数则令flag = 3,如果是四位数则令flag = 4。最终输出的时候只需要写System.out.println(flag + "位数");

        当然,由于现在还在学习语法,老师的案例比较简单,实际开发中的重复代码通常不会这么简单的。

        祝学习愉快~ 

    2021-12-12 16:40:18
  • Macrohard 提问者 回复 好帮手慕小蓝 #3

    okok,老师您这么描述的话我就完全懂了,哈哈,因为课上的例子只有一个if判断,所以我还在想打印语句哪里重复了。是这样的,如果按照您的例子,“傻傻”的判断位数,确实会有太多重复的打印语句了,这种情况确实要避免把打印语句放进if里面,要找一个相对通用的方式更加合理,所以我也理解您为什么说“老师为了代码的规范性,将打印语句写在了if外”,谢谢老师解答!!!

    2021-12-12 20:46:19
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师