在我的教科书中,它提到无论何时你想立即结束一个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,while或for循环),那么这将使您的代码编译:
if(true) {
return;
}
Run Code Online (Sandbox Code Playgroud)
返回后,您将在线路上收到错误消息,因为您永远无法到达那里.尝试类似的东西:
if(some condition)
{
return;
}
Run Code Online (Sandbox Code Playgroud)