编写可读代码的艺术 4-分支循环

2022-03-17  本文已影响0人  DZQANN

判断语句

参数顺序

应当把更倾向于不断变化的数值放在左边,更像常量的放在右边

if (currentPage < MAX_PAGE) {
  
}

if (MAX_PAGE > currentPage)

第一种就会比第二种看起来舒服很多

if else的顺序

可能是我的理解有问题,简单和可疑的情况,一般都是负逻辑

public List<VO> findByCriteria(Criteria criteria) {
  if (!isValid(criteria)) {
    throw new RuntimeException();
  }
}

就算我的方法名取得时isNotValid,那其实也是负逻辑了

三元运算符

三元运算符确实语法非常简单,但是理解起来肯定也不如if else方便。作者也说建议只在简单的判断逻辑中使用三元运算符

我自己写代码会把判断和两个表达式分成3行,感觉这样会方便很多

return exponent >= 0 ?
  mantissa * (1 << exponent) :
  mantissa / (1 << -expnent);

循环

do/while

这种其实我自己是坚决不会写的,而且我也不觉得这个语法有存在的必要。

for和while

其实我觉得这两个的区别就是数组和链表的区别

for循环更适合那种,给你一个全集,一个一个遍历的感觉。而while就是,你并不知道重点在哪里,你只知道到什么时候就差不多了,可以不用继续了

减少嵌套

大家经常提但总会人不断的写大括号。其实套路就两种嘛

①If(a) b else c一定可以写成if (a) b return c

②a b c都要抽成一个方法

其实不止是if和for,包括try catch finally,理论上来说每一个部分都只能是一个方法的调用,不要把实现逻辑放在代码块里

上一篇下一篇

猜你喜欢

热点阅读