namespace ConsoleApplication1
{
class Program
{
public int CalculateHighestNum(int value1, int value2, int value3)
{
int max;
if (value1 > (value2 & value3))
{
max = value1;
}
else if(value2 > (value1 & value3))
{
max = value2;
}
else if(value3 > (value1 & value2))
{
max = value3;
}
return max;
}
static void Main(string[] args)
{
Console.Write("Enter first NUM : ");
int a = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter second NUM : ");
int b = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter third NUM : ");
int c = Convert.ToInt32(Console.ReadLine());
Program p = new Program();
int highestnum = p.CalculateHighestNum(a, b, c);
Console.WriteLine(highestnum + " = Highest Number");
}
}
答案 0 :(得分:4)
在使用之前,您需要将初始值设置为max
或任何其他局部变量。
int max = 0;
这样做的原因是为了减少使用变量的可能性而不为其赋予合理的默认值,并且因为变量需要在返回之前分配给某个变量。 (在这种情况下,如果您的if
语句都是假的)
如果在所有情况下为变量赋值,编译器将不会显示此错误,例如在else
语句中。
另外,正如@Partha在评论中解释的那样,您可以将逻辑简化为:
return Math.Max(value1, Math.Max(value2, value3));