作者:黛滢陌陌乄 | 来源:互联网 | 2023-05-19 05:19
1.if(xxx && xxxx){
}
2 if(xxx){
if(xxx){
}
}
当if括号的条件很多时,哪一种写法好一些,为什么?
34 个解决方案
怎么样多法
假设条件都是int型,可以用switch
假设判断条件比较复杂,并且判断次数比较多,可以考虑采用责任链模式
如果有else 就用 第二种,没有else就用第一种
&&是短路与,在第一种里只要有一个为假,后面的就全不用判断了。所以第二种判断的次数当然要小于等于第一种了...哪一个好就不用说了吧
switch ()
{
case 1: 。。。。。。。。。
break;
case 2: 。。。。。。。。。
break;
case 3: 。。。。。。。。。
break;
}
1 switch支持数字和字符串了。
2 有时多个if是唯一的方法
楼主可以看看,J道里面的文章(你还在用if else吗?)。关于多个if else语句,使用设计模式。
看适合你的运用场景吗?
http://www.jdon.com/artichect/ifelse.htm
谢谢大家的回复,可能是我没表达清楚,我是想知道,下面两种情况,习惯应该怎样写,不考虑switch或者模式等替代方式。
1.if(条件1 && 条件2 ...){
执行代码
}
2 if(条件1){
if(条件2){
if(条件3){
执行代码
}
}
}
如果考虑可读性,按逻辑先后即可
先分析了所有分支,再确定执行代码如何归类
要是嵌套则现在最苛刻的条件,
不是嵌套考虑switch
if条件多就用:
1.短路
2.switch(可用类型)
简便可用三目运算符。
尽量少用if了商业代码中if的个数是有限制的!圈复杂度什么的!
其实那一中写法并不是很重要,而是要看你到底需要那种写法。
这俩写法其实是一样的,并不会冲突,因为你始终都是if,二第一种写法和下面两个写法唯一不同只是参数不同,第一个表示,既要1成立也要二成立,而你下面那两个并不能代替第一个,因为这三种情况都是分别存在的。
JDK1.7 的switch支持string类型哦
老大,面向对象编程尽量少用if和switch,用状态模式和策略模式替代把。
还有只是if条件比较复杂,建议重构出一个方法,这样代码清晰得多。比如if(xx && xxx && xxxx)改成if(not_fine(...))
switch 和 if是面向过程的编程方法,当你要维护代码的时候 你就知道设计模式的强大之处啦
反对上面的switch和if,深点说是用设计模式取代他们,浅点说就是用不同的对象来封装不同的功能,不同功能分发给相应的专门对象来处理,这样可以省掉if,比如可以多用内部类,一两句说不清楚。好好去学习一下面向对象的编程