返回语句与递归

3.5返回语句  

  在日常生活中我们经常会出现打断计划的一些情况,比如说我和好朋友约了明天下午4点去学校操场打篮球,结果到了第二天高烧39度,只能取消打球活动了。

   在Java当中,可以通过返回语句来完成程序的中断,通过下面代码完成

  

public static void plan(double temperature){

  System.out.println("准备出门去学校");

  if(temperature>38){
    // 体温超过38度,属于发烧,忌运动
    return;
  }
  
  System.out.println("去操场踢球");

}

从上面的代码可以看出,多了一个return;这就是返回语句,代码执行到这里的时候就会中断后面的代码。

有一点需要注意,就是return;语句之后是不能有其他代码的(除非是嵌套代码里,比如上边的例子)。

例一:超市满100送鸡蛋活动

/**
 * 返回语句
 */
public class ConditionTest13 {

  public static void main(String[] args) {
    pay("三文鱼",158);
    pay("大白菜",8);
  }

  public static void pay(String productName, double price) {

    System.out.println("今天购买了:" + productName + ",价格是:" + price);

    // 去超市买水果,有满100送鸡蛋的活动,如果不满足100的金额啥都没有了,完善代码
if (price<100){
  return;
}
    System.out.println("满100送鸡蛋");

  }

}

例二:四六级考试0分不打印成绩

*/
* 返回语句
 */
public class ConditionTest14 {

  public static void main(String[] args) {

    report("小A", 4, 426);
    report("小B", 4, 300);
    report("小C", 4, 500);
    report("小D", 6, 400);
    report("小E", 6, 505);
    report("小F", 6, 0);

  }

  public static void report(String name, int level, int score) {

    if (score >= 425) {
      if (level == 4) {
        System.out.println("恭喜你通过英语四级考试");
      } else if (level == 6) {
        System.out.println("恭喜你通过英语六级考试");
      }
    }
    else if (score==0){
      return;
    }
    System.out.println(name + " 本次考试成绩是:" + score);
  }

}

3.6递归

递归的规范其实只有一句话:一个方法也可以调用它自身。

现在我们提供一个倒计时的功能

public class CountDown {

  public static void main(String[] args) {
    count(3);
  }

  public static void count(int number) {
    System.out.println(number);
    number = number - 1;

    if (number == 0) {
      System.out.println("程序执行完毕");
      return;
    }
    count(number);

  }

}

这个程序就在count这个方法里调用了它自身,这样更加灵活。

玩一个歌词的小游戏,有一首歌:99瓶啤酒,它的歌词第一句是主要的:

99瓶啤酒在墙上,99瓶啤酒,拿下一瓶,传给他人,98瓶啤酒在墙上,98瓶啤酒,拿下一瓶,传给他人,97瓶啤酒在墙上

随后的歌词和前面类似,但是啤酒数量越来越少,直到最后拿完最后一瓶,歌词如下:

没有啤酒在墙上,没有啤酒,不能再拿了,不能再传了,因为墙上没有啤酒了

用递归方法来完成

/**
 * 99瓶啤酒
 */
public class ConditionTest16 {

  public static void main(String[] args) {
game(99);
  }
public static void game(int num){
  System.out.println(num+"瓶啤酒在墙上,"+num+"瓶啤酒,拿下一瓶,传给他人,");
  num=num-1;
  if (num==0){
    System.out.println("没有啤酒在墙上,没有啤酒,不能再拿了,不能再传了,因为墙上没有啤酒了");
    return;
  }
  game(num);
}


}

 

返回语句与递归

上一篇:post接口报404异常解决


下一篇:c# – 内容表正确打印PDF但不适用于RTF