在java中有多个关键词表示无条件分支,他们只是表示这个分支无需任何测试即可发生,这些关键词包括,return,break,continue和一种与其他语言中的goto类似的跳转到标号语句的方式。
return关键词有两方面的用途:一方面指定一个方法返回什么值(假设它没有void返回值),另一方面它会导致当前的方法退出,并返回那个值。可据此改写上面的test()方法,使其利用这些特点:
public class IfElse2 { static int test(int testval,int target){ if(testval>target){ return +1; }else if (testval<target){ return -1; }else {return 0;} } public static void main(String[] args) { System.out.println(test(3,2)); // 1 System.out.println(test(2,2)); // 0 System.out.println(test(1,2)); //-1 } }
不必加上else,因为方法在执行了return后不再继续执行。
如果在返回void的方法中没有return语句,那么在该方法的结尾处会有一个隐式的return,因此在方法中并非总是必须要有一个return语句。但是,如果一个方法声明它将返回void之外的其他东西,那么必须确保每一条代码路径都将返回一个值。
练习6:修改前两个程序中的两个test()方法,让他们接受两个额外的参数begin和end,这样在测试testval是将判断他是否在begin和end之间(包括begin和end)的范围内。