RT
比如如下代码
public class TestSomething {
public static void main(String[] args) {
int num1 = 1;
int num2 = 2; System.out.println(checkNums(num1, num2));
} /**
* check numbers
*
* @param num1
* @param num2
* @return result
*/
public static boolean checkNums(int num1, int num2) {
if ((num1 + num2) < 3) {
System.out.println("sum<3");
return false;
} else if ((num1 + num2) == 3) {
System.out.println("sum=3");
if (num1 != 1) {
System.out.println("num1!=1");
return false;
}
return true;
} else {
System.out.println("sum>3");
return false;
}
}
}最好只有一个出口
怎样避免?
比如如下代码
public class TestSomething {
public static void main(String[] args) {
int num1 = 1;
int num2 = 2; System.out.println(checkNums(num1, num2));
} /**
* check numbers
*
* @param num1
* @param num2
* @return result
*/
public static boolean checkNums(int num1, int num2) {
if ((num1 + num2) < 3) {
System.out.println("sum<3");
return false;
} else if ((num1 + num2) == 3) {
System.out.println("sum=3");
if (num1 != 1) {
System.out.println("num1!=1");
return false;
}
return true;
} else {
System.out.println("sum>3");
return false;
}
}
}最好只有一个出口
怎样避免?
public static boolean checkNums(int num1, int num2) {
boolean result;
if ((num1 + num2) < 3) {
System.out.println("sum<3");
result= false;
} else if ((num1 + num2) == 3) {
System.out.println("sum=3");
if (num1 != 1) {
System.out.println("num1!=1");
result= false;
}else
result= true;
} else {
System.out.println("sum>3");
result= false;
}
return result;
}
public static boolean checkNums(int num1, int num2) {
boolean result;
if ((num1 + num2) < 3) {
System.out.println("sum<3");
result=false;
} else if ((num1 + num2) == 3) {
System.out.println("sum=3");
if (num1 != 1) {
System.out.println("num1!=1");
result=false;
}
result=true;
} else {
System.out.println("sum>3");
result=false;
}
return result;
}实际上并是不说一个方法一个出口就是好。
不会全部执行的
public class TestingSomething {
public static void main(String[] args) {
int num1 = 1;
int num2 = 2;
System.out.println(checkNums(num1, num2));
} /**
* * check numbers * *
*
* @param num1 *
* @param num2 *
* @return result
*/
public static boolean checkNums(int num1, int num2) {
if((num1+num2) == 3 && num1 == 1){
System.out.println("sum=3");
return true;
}
if (((num1+num2) == 3) && num1 != 1) {
System.out.println("num1!=1");
}
if ((num1 + num2) < 3) {
System.out.println("sum<3");
}
if ((num1 + num2) > 3) {
System.out.println("sum>3");
}
return false;
}
}
public class TestingSomething {
public static void main(String[] args) {
int num1 = 1;
int num2 = 2;
System.out.println(checkNums(num1, num2));
} /**
* * check numbers * *
*
* @param num1 *
* @param num2 *
* @return result
*/
public static boolean checkNums(int num1, int num2) {
if((num1+num2) == 3 ){
System.out.println("sum=3");
if(num1 != 1){
System.out.println("num1!=1");
}
}
if ((num1 + num2) < 3) {
System.out.println("sum<3");
}
if ((num1 + num2) > 3) {
System.out.println("sum>3");
}
return ((num1+num2) == 3 && num1 == 1 );
}
}
这个程序的逻辑就是:
public static boolean checkNums(int num1, int num2) {
if (num1 == 1 && num2 == 2) {
return true;
} else {
return false;
}
}
不考虑打印的,还用不着你这么写public static boolean checkNums(int num1, int num2) {
return ((num1+num2) == 3 && num1 == 1 );
}
这样不就不会全部走完了吗