当前位置: 首页 > 知识库问答 >
问题:

为什么我得到了一个“丢失的返回语句”,即使我在代码中有这个语句?[复制]

夏志国
2023-03-14

我很困惑,为什么这段代码在我包含一条返回语句的情况下却没有返回语句。任何帮助都将不胜感激!

问题代码:

   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;
         }
      }
   }

共有3个答案

闻人升
2023-03-14

在所有情况下,代码都不会到达return语句。您需要在循环之外添加一个默认的return语句。

东门阳飇
2023-03-14

循环中有一个返回,但是编译器不确定循环是否会在不命中该语句的情况下退出。因为它认为可能会到达函数的末尾,所以它给出了这个错误。

孟泽宇
2023-03-14

之所以会出现错误,是因为并非所有代码路径都返回值。

添加此行:返回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

 类似资料: