当前位置: 首页 > news >正文

设计深圳网站制作网站的内容建设

设计深圳网站制作,网站的内容建设,杭州本地网站有哪些,软件开发外包网站if else 是我们写代码时#xff0c;使用频率最高的关键词之一#xff0c;然而有时过多的 if else 会让我们感到脑壳疼#xff0c;例如下面这个伪代码#xff1a; 是不是很奔溃#xff1f;虽然他是伪代码#xff0c;并且看起来也很夸张#xff0c;但在现实中#xff0c;… if else 是我们写代码时使用频率最高的关键词之一然而有时过多的 if else 会让我们感到脑壳疼例如下面这个伪代码 是不是很奔溃虽然他是伪代码并且看起来也很夸张但在现实中当我们无数次 review 别人代码时都会发现类似的场景那么我们本文就来详细聊聊有没有什么方法可以让我们避免来写这么多的 if else 呢 我们本文提供了 9 种方法来解决掉那些“烦人”的 if else一起来看吧。 1.使用 return 我们使用 return 去掉多余的 else实现代码如下。 优化前代码 if (str.equals(java)) {// 业务代码 ! true; } else {return ; }优化后代码 if (str.equals(java)) {return ; } return false;这样看起来就会舒服很多虽然相差只有一行代码但真正的高手和普通人之间的差距就是从这一行行代码中体现出来的。 「勿以善小而不为勿以恶小而为之」「千里之堤溃于蚁穴」说的都是同样的道理。 2.使用 Map 使用 Map 数组把相关的判断信息定义为元素信息可以直接避免 if else 判断实现代码如下。 优化前代码 if (t  1) {type  name; } else if (t  2) {type  id; } else if (t  3) {type  mobile; }我们先定义一个 Map 数组把相关判断信息存储起来 MapInteger, String typeMap  new HashMap(); typeMap.put(1, name); typeMap.put(2, id); typeMap.put(3, mobile);之前的判断语句可以使用以下一行代码代替了 type  typeMap.get(ty);3.使用三元运算符 三元运算符也叫三元表达式或者三目运算符/表达式不过代表的都是一个意思优化代码如下。 优化前代码 Integer score  81; if (score  80) {score  100; } else {score  60; }优化后代码 score  score  80 ? 100 : 60;4.合并条件表达式 在项目中有些逻辑判断是可以通过梳理和归纳变更为更简单易懂的逻辑判断代码如下所示。 优化前代码 String city  西安; String area  029; String province  陕西; if (西安.equals(city)) {return xian; } if (029.equals(area)) {return xian; } if (陕西.equals(province)){return xian; }优化后代码 if (西安.equals(city) || 029.equals(area) || 陕西.equals(province)){return xian; }5.使用枚举 JDK 1.5 中引入了新的类型——枚举enum我们使用它可以完成很多功能例如下面这个。 优化前代码 Integer typeId  0; String type  Name; if (Name.equals(type)) {typeId  1; } else if (Age.equals(type)) {typeId  2; } else if (Address.equals(type)) {typeId  3; }优化时我们先来定义一个枚举 public enum TypeEnum {Name(1), Age(2), Address(3);public Integer typeId;TypeEnum(Integer typeId) {this.typeId  typeId;} }之前的 if else 判断就可以被如下一行代码所替代了 typeId  TypeEnum.valueOf(Name).typeId;6.使用 Optional 从 JDK 1.8 开始引入 Optional 类在 JDK 9 时对 Optional 类进行了改进增加了 ifPresentOrElse() 方法我们可以借助它来消除 if else 的判断使用如下。 优化前代码 String str  java; if (str  null) {System.out.println(Null); } else {System.out.println(str); }优化后代码 OptionalString opt  Optional.of(java); opt.ifPresentOrElse(v - System.out.println(v), () - System.out.println(Null));小贴士注意运行版本必须是 JDK 9 才行。 7.梳理优化判断逻辑 和第 4 点比较类似我们可以通过分析 if else 的逻辑判断语义写出更加易懂的代码例如以下这个嵌套判断的优化。 优化前代码 // 年龄大于 18 if (age  18) {// 工资大于 5000if (salary  5000) {// 是否漂亮if (pretty  true) {return true;}} } return false;优化后代码 if (age  18) {return false; } if (salary  5000) {return false; } return pretty  true; 我们需要尽量把表达式中的包含关系改为平行关系这样代码可读性更高逻辑更清晰。 8.使用多态 继承、封装和多态是 OOP面向对象编程的重要思想本文我们使用多态的思想提供一种去除 if else 方法。 优化前代码 Integer typeId  0; String type  Name; if (Name.equals(type)) {typeId  1; } else if (Age.equals(type)) {typeId  2; } else if (Address.equals(type)) {typeId  3; }使用多态我们先定义一个接口在接口中声明一个公共返回 typeId 的方法在添加三个子类分别实现这三个子类实现代码如下 public interface IType {public Integer getType(); }public class Name implements IType {Overridepublic Integer getType() {return 1;} }public class Age implements IType {Overridepublic Integer getType() {return 2;} }public class Address implements IType {Overridepublic Integer getType() {return 3;} }注意为了简便我们这里把类和接口放到了一个代码块中在实际开发中应该分别创建一个接口和三个类分别存储。 此时我们之前的 if else 判断就可以改为如下代码 IType itype  (IType) Class.forName(com.example.  type).newInstance(); Integer typeId  itype.getType();有人可能会说这样反而让代码更加复杂了此可谓“杀鸡焉用宰牛刀”的典型范例了。这里作者只是提供一种实现思路和提供了一些简易版的代码以供开发者在实际开发中多一种思路和选择具体用不用需要根据实际情况来定了。灵活变通举一反三才是开发的上乘心法。 9.选择性的使用 switch 很多人都搞不懂 switch 和 if else 的使用场景但在两者都能使用的情况下可以尽量使用 switch因为 switch 在常量分支选择时switch 性能会比 if else 高。 if else 判断代码 if (cmd.equals(add)) {result  n1  n2; } else if (cmd.equals(subtract)) {result  n1 - n2; } else if (cmd.equals(multiply)) {result  n1 * n2; } else if (cmd.equals(divide)) {result  n1 / n2; } else if (cmd.equals(modulo)) {result  n1 % n2; }switch 代码 switch (cmd) {case add:result  n1  n2;break;case subtract:result  n1 - n2;break;case multiply:result  n1 * n2;break;case divide:result  n1 / n2;break;case modulo:result  n1 % n2;break; }在 Java 14 可使用 switch 代码块实现代码如下 // java 14 switch (cmd) {case add - {result  n1  n2;}case subtract - {result  n1 - n2;}case multiply - {result  n1 * n2;}case divide - {result  n1 / n2;}case modulo - {result  n1 % n2;} }总结 业精于勤荒于嬉行成于思毁于随。编程是一门手艺更是一种乐趣哈佛最受欢迎的幸福课《幸福的方法》一书中写到「让我们能感到快乐和幸福的方法无非是全身心的投入到自己稍微努力一下就能完成的工作中去」是啊太简单的事情通常无法调动起我们的兴趣而太难的工作又会让我们丧失信心只有那些看似很难但稍微努力一点就能完成的事情才会给我们带来巨大的快乐。 我想编程也是一样普通的方法每个人都会写然而优雅一点的代码不是所有人都能写得出来而本文恰恰是提供了写出优雅代码的一些思路希望可以帮助和启发到你。 最后的话 原创不易如果觉得本文对你有用请随手点击一个「在看」这是对作者最大的支持与尊重谢谢你。 参考 鸣谢 https://www.tuicool.com/wx/2euqQvZ http://www.blogjava.net/xzclog/archive/2006/10/16/75399.html END 用了自定义Banner后SpringBoot瞬间变的高大上了... 别再问我 new 字符串创建了几个对象了我来证明给你看 关注公众号发送”进群“老王拉你进读者群。
http://www.zqtcl.cn/news/925728/

相关文章:

  • 手机网站怎么做SEO优化gzip压缩 wordpress
  • 上下框架 网站app营销的核心是什么
  • 网站开发哪里有培训wordpress 主题 网址导航
  • 深圳市宝安区怎么样百度禁止seo推广
  • 手机电商网站 模板常熟做网站优化
  • 免费的logo设计网站网页设计与制作dw
  • 线上调研问卷在哪个网站上做网页设计学生作业
  • 云南高端网站建设网页设计工作室选址依据
  • 免费的编程自学网站互联网公司网站建设ppt
  • 免费发帖的网站网站空间服务器费用
  • 商城类的网站一般怎么做做ps从哪个网站上下载图片大小
  • 怎么做网站链接支付免费推广网站搭建
  • 威海 网站建设刚刚北京传来重大消息
  • 深圳返利网站开发做网站版权怎么写
  • 上传网站内容做社交电商第一步怎么做
  • 网站icp查询系统wordpress 页面 首页
  • wordpress安装教程wamp搜索引擎优化的英文缩写是什么
  • 成都旅行社网站建设网站建设包含哪些方面
  • 找不到网站后台怎么办韩国网站域名分类
  • 建设商务网站作用积极参与网站信息建设工作
  • 网站开发阶段Oss怎么做静态网站
  • 做科学小制作的视频网站怎么才能建立自己的网站啊
  • 跳蚤市场网站开发背景网站优点
  • 长春网站建设方案咨询怎么做自己的网站平台
  • 网站建设谈单技巧做网站建设科技公司
  • 品牌网站建设4a小蝌蚪网页设计分类
  • 域名注册以后会给你一个账户名密码上传做好的网站文化网站建设需要的功能
  • 企业站用wordpress做好吗那些做环保网站的好
  • 天津有哪些有名的网站建设公司商城网站模板免费
  • 安徽省途顺建设工程有限公司网站制作网站公