弯弯月郎 发表于 2021-5-21 17:05:25

为什么输入不合法,程序还是继续执行下面的代码?

请教各位大神,为什么在setter里设置了年龄必须在0-100之间,但是即使输入了错误的数字,程序还是一直执行到底?
class getter {
    private String name;
    private int age;   

public String getName() {
      return this.name;
    }

    public void setName(String name) {
      this.name = name;
    }

    public int getAge() {
      return this.age;
    }

    public void setAge(int age) {
      if(age>0&&age<100){
            this.age = age;
    }else {
      System.out.println("输入不合法,请重新输入!");
      return;
    }
    }
}
——————————————————————————————
import java.util.Scanner;

public class test {
    public static void main(String[] args) {
      getter g = new getter();
      Scanner sc = new Scanner(System.in);
      System.out.println("请输入姓名:");
      String s1 = sc.nextLine();
      g.setName(s1);
      System.out.println("请输入年龄:");
      int s2 = sc.nextInt();
      g.setAge(s2);
      System.out.println(g.getName());
      System.out.println(g.getAge());
      System.out.println("我叫"+g.getName()+","+"我今年"+g.getAge()+"岁");
    }
}

残像诗者 发表于 2021-5-24 06:51:54

只是打印了那句话而已,并没有中断程序。

孙世民 发表于 2021-5-28 14:27:32

return只是结束当前方法,也就是setAge方法,main还在继续执行啊
如果你的ide足够智能,它会提示你 'return' 不必要,因为是 'void' 方法中的最后一条语句

休息中的一休哥 发表于 2021-6-1 13:21:20

set方法里面抛出一个异常,在main方法里面捕获这个异常
页: [1]
查看完整版本: 为什么输入不合法,程序还是继续执行下面的代码?