两个if语句都return false,是分开判断好,还是用&&合在一起好
/**
* 判断两个数组是否相等
* @param arr
* @param arr1
* @return
*/
public static boolean isEqual(int[] arr,int[]arr1){
if (arr==null && arr1==null) return true;
if (arr==null || arr1==null) return false;
if (arr.length != arr1.length) return false;
for (int i = 0; i < arr.length; i++) {
if (arr[i] != arr1[i]) return false;
}
return true;
}
public static boolean isEqual(int[] arr,int[]arr1){
if (arr==null && arr1==null) return true;
if ((arr==null || arr1==null) && (arr.length != arr1.length)) return false;
for (int i = 0; i < arr.length; i++) {
if (arr[i] != arr1[i]) return false;
}
return true;
}
性能最优
这两种方式无论怎么优化,对性能的影响都甚微,毕竟只是逻辑判定。
但分开成两个if能便于开发人员理解逻辑。
都不好
到处return让代码可读性变差
你应该定义一个bool量,最后return这个bool量,前面所有的if都改为if else 结构,让它最终只会进入一个分支,而不是每个分支都走进去一遍
横向写一堆与或非可读性会很差,而且写多了屏幕都放不下了,那代码根本没法看
该写成纵向的还是要写成纵向
你这不会空指针?
这种情况下不应该用 || 吗?为什么是用 && ?