有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java此方法必须返回int类型的结果?

为什么它说该方法必须返回int类型?返回值是整数

public static int search(int[] nums)
{
    Scanner keyboard = new Scanner(System.in);
    System.out.println("What value do you want?");
    int value = keyboard.nextInt();
    for(int i=0;i<nums.length;i++)
    {
        if(nums[i] == value)
            return nums[value];
        else
            return -1;
    }
}

共 (5) 个答案

  1. # 1 楼答案

    并非所有路径都返回某些内容
    通过在for循环之后添加一个返回,或者使用一个返回变量,可以避免这种错误。它看起来也像是您试图在数组中搜索用户键入的号码。如果是这样,您不希望使用else,否则它将只检查nums中的第一个数字

    public static int search(int[] nums)
    {
        int ret = -1;
        Scanner keyboard = new Scanner(System.in);
        System.out.println("What value do you want?");
        int value = keyboard.nextInt();
        for(int i=0;i<nums.length;i++)
        {
           if(nums[i] == value)
           {
               ret = nums[value];
               break;
           }
        }
        return ret;
    }
    
  2. # 2 楼答案

    如果nums为null或空,则for循环永远不会执行,因此您不会返回任何内容

    这样做

    public static int search(int[] nums)
    {
      Scanner keyboard = new Scanner(System.in);
      System.out.println("What value do you want?");
      int value = keyboard.nextInt();
      for(int i=0;i<nums.length;i++)
      {
        if(nums[i] == value)
        return nums[value];
        else 
        return -1;
     }
     return 0;   // default value
    }
    
  3. # 3 楼答案

    请确保跳过循环时知道返回的类型

  4. # 4 楼答案

    nums[]为空数组或null的情况下。(但是null值会产生null指针异常nums.length。)在这种情况下,循环将不会执行,它将是一个无效的返回,所以为了避免这种情况,您必须声明一个默认的返回语句

  5. # 5 楼答案

    虽然您在内的返回类型int类型,但您的循环不能保证实际运行,并且在循环不运行的情况下,您没有返回值(因此也没有返回类型)