程序流程C#

时间:2017-07-06 16:04:10

标签: c# string if-statement

我正在学习C#。在下面的例子中,我相信我有正确的代码,但某处必须有一两个错误(可能更多)。请参阅以下代码:

    public static string ReturnAgeGroup(int age)
    {
        if (age >= 65)
        {
            return "senior citizen";
        }
        if (age < 21)
        {
            return "minor";
        }
        if (age >= 21 & age < 65)
        {
            return "adult";
        }
    }

RetrunAgeGroup 下面有一条红色的波浪线,当我将鼠标悬停在它上面时,它说并非所有代码路径都返回值。为什么是这样?关于年龄的每种可能性都由条件涵盖。

是否还有其他错误我无法识别?

此致

4 个答案:

答案 0 :(得分:1)

你可以这样做。

public static string ReturnAgeGroup(int age)
{
    if (age >= 65)
    {
        return "senior citizen";
    }
    if (age < 21)
    {
        return "minor";
    }

    return "adult";
}

答案 1 :(得分:0)

IntellySence无法确定您变量100%传递到IF之一。 将上次if替换为else

public static string ReturnAgeGroup(int age)
{
    if (age >= 65)
        return "senior citizen";
    if (age < 21)
        return "minor";
    else
        return "adult";
}

答案 2 :(得分:0)

您需要在if语句之外返回,或者删除其中一个案例并将其用作默认值。例如,如果我们默认为成年人,我们会这样做:

 public static string ReturnAgeGroup(int age)
 {
     if (age >= 65)
     {
         return "senior citizen";
     }
     if (age < 21)
     {
         return "minor";
     }
     return "adult"; 
  }

答案 3 :(得分:0)

删除最后一个,然后离开return "adult"

编译器在验证代码路径时不考虑条件。这就像路牌。如果它说,你可以向左或向右,那么你可以。编译器不在乎,如果在转弯之后那里有大量的垃圾和道路是无法通行的。类似这里。有三个条件,可能是也可能不是。因为在最后一个之后没有更多的代码,并且你的函数在所有情况下都会返回值,你会收到警告。