mk1*_*k12 4 if-statement code-readability clarity
在一个变量可能有两个不同的值的情况下,如果它是一个变量,你会做一些不同的事情,如果是另一个变量,你会这样做:
if(myVariable == FIRST_POSSIBLE_VALUE) { ... }
else { ... }
Run Code Online (Sandbox Code Playgroud)
或者你会这样做:
if(myVariable == FIRST_POSSIBLE_VALUE) { ... }
else if (myVariable == SECOND_POSSIBLE_VALUE) { ... }
Run Code Online (Sandbox Code Playgroud)
为清楚起见,在一种情况下,读者不一定能够告诉他们做同样的事情(但是否则是"不必要的"表达)?那你会怎么做?谢谢!
编辑:实际上有更多不同的选项,如:三元运算符,if-else,if-elseif,if-elseif-else,-if-else(带断言),switch.每个人都有自己的位置,但很难决定......
当没有其他可能的变量状态时(即检查null和所有这些),我总是更喜欢普通的其他.我可以添加一个注释,说明变量是什么,如果它不是第一个条件,但只有在它喜欢的情况下
if(color==red){
....
}else{ //our theme only allows for red and yellow, so the color must be yellow.
....
}
Run Code Online (Sandbox Code Playgroud)
此外,这为处理器节省了一些时间,因为它不必检查无用的变量(或者更糟糕的是在OOP中,检查该变量可能需要相当多的解引用,函数调用和内存读取)
我从不做类似的事
if(file.is_open==1){
....
}else if(file.is_open==0){
....
Run Code Online (Sandbox Code Playgroud)
}
因为is_open是一个布尔值,所以指定它是没有意义的,因为剩下的唯一选项是0,当你必须重构你的代码以使用is_open()时,这也可以节省一些输入,因为现在你只需要改变一行而不是两个.
和'否则'如果'语句我认为应该转为开关,如果有超过1'其他如果',除非当然语言使其不可能(例如C如何不能处理交换机中的字符串)