运营商&&不能应用于bool和int c#

时间:2013-09-27 13:07:35

标签: c# operators

运营商&&不能应用于bool和int C#?

class Program
{
    static void Main(string[] args)
    {
        Console.Write("Enter number1 : ");
        Console.Write("Enter number2 : ");
        Console.Write("Enter number3 : ");

        int getla1 = Convert.ToInt32(Console.ReadLine());
        int getla2 = Convert.ToInt32(Console.ReadLine());
        int getla3 = Convert.ToInt32(Console.ReadLine());

        if (getla1 && getla2 > getla3)
        {
            Console.WriteLine("The third number is the smallest number");
        }
    }
  }
}

8 个答案:

答案 0 :(得分:2)

if ((getla1 > getla3) && (getla2 > getla3))
{
     // The third number is the smallest number
     Console.WriteLine("Het derde getal is de kleinste getal");
}

答案 1 :(得分:2)

您不能在C#中使用类似布尔值的整数。

如果您要检查getla1是否为0,请使用if (getla1 != 0 && getla2 > getla3) {}

答案 2 :(得分:2)

getla1是一个整数。因此,对于在C#中被视为布尔值的整数,没有定义的行为。如果你习惯于动态输入一个整数为“truthy”的语言,如果它不为零,那么你需要检查整数是否为零:

if (getla1 != 0 && getla2 > getla3) {...}

答案 3 :(得分:1)

getla1是一个int。 &安培;&安培;需要两个布尔。你的意思是:

if (getla1 != 0 && getla2 > getla3)

if (getla1 > getla3 && getla2 > getla3)

答案 4 :(得分:1)

我认为您要做的是检查getla1getla2的添加是否大于getla3

    if ((getla1 + getla2) > getla3)
    {
        Console.WriteLine("Het derde getal is de kleinste getal");
    }

答案 5 :(得分:0)

您是否尝试比较两个值以查看它们是否大于,如果是,则执行此操作:

if ((getla1 > getla3) && (getla2 > getla3))

答案 6 :(得分:0)

您是否尝试了解编译器错误?代码if (getla1 && getla2 > getla3)表示if ((getal1) && (getal2 > getal3))

由于getal1int,因此您无法将其用作条件,因为条件需要求值为布尔值。

您无法将多个数字与一个数字进行比较。你正在寻找这个:

if ((getal1 > getal3) && (getal2 > getal3))

答案 7 :(得分:0)

我认为你正试图检查这样的条件

(getla1 + getla2) > getla3