CrapsAnalysis.java:48: error: missing return statement
}
^
1 error
Process javac exited with code 1
代码:
public class CrapsAnalysis
{
public static int rollDie( int n) {
return (int)(Math.random()*n) + 1 ;
}
public static int rollDice( ) {
return rollDie(6) + rollDie(6) ;
}
public static boolean playOneGame( ) {
int newDice = rollDice();
int roll = rollDice(); //first roll of the dice
int playerPoint = 0; //player point if no win or loss on first roll
if (roll == 7 || roll == 11)
return true;
else if (roll == 2 || roll == 3 || roll == 12)
return false;
else
playerPoint = roll;
do {
if (rollDice() == 7)
return false;
else if (rollDice() == playerPoint)
return true;
else
newDice = rollDice();
} while (rollDice() != playerPoint || rollDice() != 7) ;
}
}
下面是一个非常精简的代码版本:
public static boolean playOneGame()
{
if(condition1 == true)
{
//code1
return true;
}
else if(condition2 == true)
{
//code2
return false;
}
else
{
//code3
}
//code4
}
如果condition1
或condition2
为true,则playOneGame()
将返回true或false。但是,如果condition1
和condition2
都为false,则将运行的唯一代码是code3。code3不包含return语句,因此从理论上讲,playOneGame()
不会返回任何东西是有可能的。您知道condition1
和condition2
永远不会同时为false,但java编译器不会,因此它会抛出编译器错误。如果它没有抛出编译器错误,而condition1
和condition2
不知怎么都变成false,它将抛出运行时错误。运行时错误比编译器错误更难调试,因此编译器抛出一个易于修复的错误是在帮您一个忙。
若要修复缺少的return语句,请向code3或CODE4添加return语句。
我真的弄不明白为什么我的代码会导致这个错误,一切看起来都是正确的,以为它总是出现,因为它缺少一个return语句 我试着寻找解决方案,我看到“if”后面的“while”是一个解决方案,但由于我需要多个数字,我不能使用while,而必须使用“what if”。
此ProductDAO类返回用户的产品列表,但Netbeans中的编译器显示“Missing return statement”。有进展吗?
我一直得到一个丢失的返回语句错误,但我不知道在哪里。每次跟随代码,我都感觉到至少有一个if语句提供了return语句。 代码:
我有以下代码 null 我错过了什么?
我遇到一种情况,一个non-void方法缺少一个return语句,而代码仍然在编译。我知道while循环之后的语句是不可达的(死代码),并且永远不会被执行。但是为什么编译器甚至不警告返回一些东西呢?或者为什么一种语言允许我们有一个非void的方法,它有一个无限循环,而不返回任何东西? 如果我在while循环中添加一个break语句(即使是一个条件语句),编译器就会抱怨那些臭名昭著的错误:在Ecli
所以我得到了一个编译器错误,我丢失了一个返回语句,我已经研究了其他类似的问题,但我仍然对这个问题感到困惑。 如果之前有人问过这个问题,我会提前道歉,但我已经看过了其他各种问题,我似乎无法弄清楚这一点。