我很困惑,为什么这段代码在我包含一条返回语句的情况下却没有返回语句。任何帮助都将不胜感激!
问题代码:
public static int getSize()
{
Scanner kbd = new Scanner(System.in);
int x = 1;
while(x==1){
System.out.println("Enter the size (>0): ");
int n = kbd.nextInt();
if (n>0){
x--;
return n;
}
}
}
在所有情况下,代码都不会到达return语句。您需要在循环之外添加一个默认的return语句。
循环中有一个返回
,但是编译器不确定循环是否会在不命中该语句的情况下退出。因为它认为可能会到达函数的末尾,所以它给出了这个错误。
之所以会出现错误,是因为并非所有代码路径都返回值。
添加此行:返回0
在方法末尾:
public static int getSize()
{
Scanner kbd = new Scanner(System.in);
int x = 1;
while(x==1){
System.out.println("Enter the size (>0): ");
int n = kbd.nextInt();
if (n>0){
x--;
return n;
}
}
return 0; // Add this line
}
假设
n
问题内容: 如果我将这段代码的else if部分更改为else语句,则它可以毫无问题地运行,因此可以了解如何使其运行。我有些困惑的是,为什么当它处于当前形式时会收到一个丢失的return语句错误。我的回报取决于负数布尔变量的值。我涵盖了真实和错误的状态,难道不足以涵盖所有内容吗? 还是我总是必须在else内包含return语句,还是在我的函数底部添加一个无意义的return true,以便编译器接
只是无法计算方法中的return语句。
我有以下疑问: 我得到以下MySQL错误: 下面是我的表架构:
这是我的程序的方法我正在尝试运行我的代码,但它不会运行它说错误:缺少返回语句“}”,我认为这个if/else部分是问题所在,但我无法找出我哪里做错了,以及如何修复它
我想知道是否有可能把代码的这个语句变成一个三元if语句。 我试过这样格式化它--但不认为它很管用。
这是我第一次问问题,如果这看起来很奇怪,很抱歉。这是我的完整代码。和星星分开的线就是断裂的线。