用return结束void方法;

1 java methods void

在我的教科书中,它提到无论何时你想立即结束一个void方法,你都可以引入回归; 但是,我尝试在eclipse上实现它,它似乎不起作用.我试图在变量日结束方法.我收到一条错误消息,说我的其余代码无法访问.

public void readInput(){
    Scanner myKeyboard = new Scanner(System.in);
    System.out.println("Enter the day");
    day = myKeyboard.nextInt();
    return; //error is here
    System.out.println("Enter the year");
    year = myKeyboard.nextInt();
    System.out.println("Enter the month");
    month = myKeyboard.next();
}
Run Code Online (Sandbox Code Playgroud)

有没有什么东西让我的课本忘记了!

chr*_*ke- 10

在Java中,包含不可能执行的代码是非法的(因为这几乎总是一个错误).在你的代码中,你return无条件地调用,然后你有额外的代码 - 这被称为无法访问的代码,它导致编译器错误.

return在方法中间使用的是当你有条件时,例如

if(exitNow) { 
    return;
}
Run Code Online (Sandbox Code Playgroud)

然后程序可能继续执行剩余的代码.要测试这个,试试这个:

if(day == 0) {
    return;
}
Run Code Online (Sandbox Code Playgroud)

作为@fdreger提到的,JLS明确表示,即使条件if语句是一个编译时间常数,编译器将if如同条件是不确定的(这仅适用于if,而不是do,whilefor循环),那么这将使您的代码编译:

if(true) {
    return;
}
Run Code Online (Sandbox Code Playgroud)


Dal*_*son 5

返回后,您将在线路上收到错误消息,因为您永远无法到达那里.尝试类似的东西:

if(some condition)
{
   return;
}
Run Code Online (Sandbox Code Playgroud)

  • 为什么要downvote.chrylis的答案出现了,因为我击中了我的. (2认同)