首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

谈谈代码:如何避免写出糟糕if...else语句

版本 日期 备注 1.0 2019.1.18 文章首发 1.1 2021.5.21 改进标题的标点符号 在写代码的日常中,if...else语句是极为常见的.正因其常见性,很多同学在写代码的时候并不会去思考其在目前代码中的用法是否妥当....而随着项目的日渐发展,糟糕的if...else语句将会充斥在各处,让项目的可维护性急剧下降.故在这篇文章中,笔者想和大家谈谈如何避免写出糟糕if...else语句....问题代码 当我们看到一组if...else时,一般是不会有什么阅读负担的.但当我们看到这样的代码时: private void validate(APICreateSchedulerMessage...目标和关键指标 前面说过,我们的目标是减少糟糕的if...else代码.那么什么是糟糕的if...else代码呢?...Mediator模式 在本文的第一段的代码中,其实是ZStack 2.0.5版本中某处的代码,它用来防止用户使用Cli时传入不当的参数,导致后面的逻辑运行不正常.为了方便理解,我们可以对其规则做一个简化

13010

Java中大量if...else语句的消除替代方案

在我们平时的开发过程中,经常可能会出现大量If else的场景,代码显的很臃肿,非常不优雅。那我们又没有办法处理呢? ? 针对大量的if嵌套让代码的复杂性增高而且难以维护。本文将介绍多种解决方案。...案例 下面模拟业务逻辑,根据传入的条件作出不同的处理方式。 拿一个计算器类当做案例,有加减乘除四种方法,输出结果和四种操作有关。...engine.process(expression); assertNotNull(result); assertEquals(10, result.getValue()); } 总结 虽然说常见的代码中...if...else不可避免,但滥用 if...else 会对代码的可读性、可维护性造成很大伤害。...因此,使用好 if...else,让代码清爽对于你的项目长远考虑有十分重要的意义。

2.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在pycharm中写代码_pycharm运行部分代码

    下面有两个可选框:在新环境中继承全局包环境、令当前环境可以用其它所有项目,两个都不要选。...现在我们可以开始新的 Python 程序了。如果你使用的是 Mac 系统,使用 Cmd+N 键;如果你使用的是 Windows 或 Linux 系统,使用 Alt+Ins 键。...你将看到如下 PyCharm 窗口: 至于测试代码,我们来快速写一个简单的猜谜游戏,即程序选择一个数字让用户来猜,在每一次猜测时,程序将告诉用户他猜的数字比神秘数字大还是小,用户猜中数字时游戏结束。...以下是该游戏的代码: 直接键入上述代码,而不是复制粘贴。...你会看到如下画面: 如上图所示,PyCharm 提供 Intelligent Coding Assistance 功能,可以执行代码补全、代码检查、错误高亮显示和快速修复建议。

    1.4K20

    如何在pycharm运行python_pycharm怎么运行部分代码

    这篇文章主要介绍了Pycharm如何运行.py文件的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧!...Pycharm时一个非常好用的IDE,但是一开始的时候甚至会因为.py文件不能运行而束手无策。。。...所以当你发现.py文件不能运行时,多半是因为.py文件的路径没有添加。...所以你需要将.py文件的路径添加了,一种是手动的方法: 首先:点击配置文件 2 点击添加 3 选择python并添加.py文件路径 比如,本文中的设置如下: 当你返回编程界面后就可以选择你要运行的.py...所以另一个简单的方法是: 当光标停在Pycharm界面后,按F9,弹出如下界面: 点击我们要运行的.py文件就可以运行了,我们再看原来的配置信息,和我们手动配置的一样: 以上就是本文的全部内容,希望对大家的学习有所帮助

    91330

    Python if...else的语法和执行流程【代码详细】

    一、if...else语法 作用:条件成立执行if下方的代码,条件不成立执行else下方的代码。...if 条件 条件成立执行的代码1 条件成立执行的代码2     ...... else: 条件不成立执行的代码1 条件不成立执行的代码2     .........您的年龄是{age},还未成年,不可以上网') 返回结果: 图片1.png 注意: 如果某些条件成立执行了相关代码,那么其他情况的代码解释器根本不会执行 二、if语句执行流程: 利用Debug单步操作观看执行流程很直观...进入PyCharm,准备好之前的代码 2....得到结果不管条件成立或者不成立只会执行相关的代码,而其他代码根本不会执行,正好验证了如果某些条件成立执行了相关代码,那么其他情况的代码解释器根本不会执行。

    51820

    9条消除if...else的锦囊妙计,助你写出更优雅的代码

    前言 最近在做代码重构,发现了很多代码的烂味道。其他的不多说,今天主要说说那些又臭又长的if...else要如何重构。...在介绍更更优雅的编程之前,让我们一起回顾一下,不好的if...else代码 一、又臭又长的if...else 废话不多说,先看看下面的代码。...二、消除if...else的锦囊妙计 1、使用注解 代码中之所以要用code判断使用哪个支付类,是因为code和支付类没有一个绑定关系,如果绑定关系存在了,就可以不用判断了。 我们先定义一个注解。...5.责任链模式 这种方式在代码重构时用来消除if...else非常有效。 责任链模式:将请求的处理对象像一条长链一般组合起来,形成一条对象链。......else语句会很长,这时如果改成使用Assert类判断,代码会简化很多: public String save2(Integer code,String name) { Assert.notNull

    1.8K21

    dotnet 为什么开源的运行时仓库代码减少使用 Linq 语句

    在 dotnet 开源的 runtime 运行时仓库里面,有微软的大佬说运行时仓库的代码应该减少使用 Linq 语句,那这又是为什么呢 微软的 Jan Kotas 大佬说了下面这段话,大概意思就是减少在运行时库里减少对...的,放心,没有性能问题 只是运行时库想要减少 JIT 创建泛形的类型的时间,因此减少使用而已 当然,本文只是裁几段话,没有很具体上下文含义。...,在调用 GetProcessesByName 的时候,是否可以减少一些内存的分配。...尽管在获取进程的时候,性能是在获取的本机代码,但是多申请的内存是影响未来。这个意思是在调用这个方法的代码了解到这里的性能比较渣,因此将会有预期。...而申请的内存,需要后续进行内存释放,这不是预期的,因此多申请内存影响的是之后。

    56410

    【Web前端】创建JavaScript“条件语句”代码块做决定

    if...else 语句 ​​if...else​​​语句是JavaScript中最基本的条件语句。它允许程序在满足特定条件时执行一段代码,如果不满足条件,则执行另一段代码。...一组花括号,在里面我们有一些代码——可以是任何我们喜欢的代码,并且只会在条件语句返回 ​​true​​ 的时候运行。 关键字 ​​else​​。...另一组花括号,在里面我们有一些代码——可以是任何我们喜欢的代码,并且当条件语句返回值不是 ​​true​​(换句话说,这个返回值为 ​​false​​​)的话,它才会运行。...} } else { // 条件1为假时执行的代码 } 嵌套的​​if...else​​​语句可以用来处理更复杂的逻辑。...关键字 ​​case​​, 后跟一个选项的表达式/值,后面跟一个冒号。 如果选项与表达式匹配,则运行一些代码。 一个 ​​break​​ 语句,分号结尾。

    10310

    loadrunne如何只测某个方法,或只压测录制的脚本部分代码的运行用时

    做压测时,因为需要只需要我去调用服务器工程上的一个service层(springmvc)的方法: ?...我只需要调用这个接口下的call方法,去编写这样的一个脚本是十分困难的,小编h想了一天也没有头绪,后来在同事的建议下还是使用录制脚本的方法去修改录制脚本,进而得到我想要的。...录制脚本需要登录服务器上的这个工程,还要点击相应的页面,然后填写入参,提交。其中我只需要填写入参,提交这些步骤,因为这个步骤是最接近我直接调用call方法的代码过程。...在请求前和请求后加 lr_start_transaction(“Trans_1”);和lr_end_transaction(“Trans_1”,LR_PASS);这两行代码,在压测的分析图中会多出一条曲线...,只显示处理这段代码所用的时间。

    55220

    JavaScript 条件语句

    条件语句之 if...else JavaScript 提供if结构和switch结构,完成条件判断,即只有满足预设的条件,才会执行相应的语句。...if结构先判断一个表达式的布尔值,然后根据布尔值的真伪,执行不同的语句。所谓布尔值,指的是 JavaScript 的两个特殊值,true表示真,false表示伪。...if (m === 3) { // 满足条件时,执行的语句 } else { // 不满足条件时,执行的语句 } 对同一个变量进行多次判断时,多个if...else语句可以连写在一起。...break; default: // ... } 上面代码根据变量fruit的值,选择执行相应的case。如果所有case都不符合,则执行最后的default部分。...,switch语句后面的表达式,与case语句后面的表示式比较运行结果时,采用的是严格相等运算符(===),而不是相等运算符(==),这意味着比较时不会发生类型转换。

    92140

    如何 “干掉” if...else

    对于后两个问题,本文将在下面两节介绍。本节先来讨论 if...else 过多的情况。...上述框架只是起到一个参考的作用,如果涉及到具体项目,需要根据业务特点自行实现状态机的核心功能。 方法六:Optional 介绍 Java 代码中的一部分 if...else 是由非空检查导致的。...因此,降低这部分带来的 if...else 也就能降低整体的 if...else 的个数。 Java 从 8 开始引入了 Optional 类,用于表示可能为空的对象。...这一节重点一些方法,这些方法并不会降低 if...else 的个数,但是会提高代码的可读性: 抽取方法 卫语句 方法一:抽取方法 介绍 抽取方法是代码重构的一种手段。...正如前言所说,if...else 是代码中的重要组成部分,但是过度、不必要地使用 if...else,会对代码的可读性、可扩展性造成负面影响,进而影响到整个软件系统。

    92620

    代码重构之道:消灭冗长的if语句,提升代码质量

    当我们重构代码时,去除代码中的 if语句通常是一个很好的目标。 if语句可能会使代码变得复杂,难以维护,容易引入 bug。本文将介绍一些去除 if语句的常见方案和代码示例。 1....使用多态 多态是一种面向对象编程的技术,它允许我们根据对象的具体类型来调用方法。通过使用多态,我们可以去除一些条件判断语句。...使用策略模式 策略模式是一种设计模式,它将算法封装在独立的策略类中,然后在运行时选择适当的策略。这可以帮助我们避免大量的 if语句。...,还有设计模式中的工厂模式、观察者模式、装饰者模式等,都可以帮助我们去除代码中的if语句,提高代码的可维护性和可扩展性。...具体的方法取决于代码的具体情况和需求。 重构代码以去除 if语句可能需要一些额外的工作,但通常是值得的,因为它可以使代码更加清晰、可读和易于维护。希望这些示例对你有所帮助。感谢你的阅读!

    22340
    领券