运算符“&&”不能应用于类型“int”和“bool”的操作数

本文关键字:amp bool 操作数 不能 运算符 应用于 类型 int | 更新日期: 2023-09-27 18:32:12

im 试图找出输入的数字是否可以被 9 和 13 整除,但它不会让我使用我需要的运算符,我知道变量类型是错误的,但我不知道如何使它被接受变量类型,我是编码新手,所以答案可以尽可能基本而不带小便

public bool IsFizzBuzz(int input)
{
    if ((input % 9) && (input % 13) == 0)
    {
        return true;
    }
    else
    {
        return false;
    }
}

运算符“&&”不能应用于类型“int”和“bool”的操作数

由于==运算符的优先级高于运算符&&因此 if 语句首先计算;

(input % 13) == 0

部分,返回truefalse取决于您的input。你的 if 语句会像;

(input % 9) && true // or false

由于input % 9表达式返回 int ,最后,您的 if 语句将是;

int && true

逻辑 AND 在 intbool变量之间毫无意义。

&&运算符(C# 参考)

条件 AND 运算符 (&&) 执行其布尔值的逻辑 AND 操作数,但仅在必要时计算其第二个操作数。

你说;

我试图找出输入的数字是否既能被整除 9 和 13

然后你应该像这样使用它们;

if ((input % 9 == 0) && (input % 13 == 0))

您不能将两个括号中的语句与一个比较进行比较,您必须执行以下操作。

if( (input % 9 == 0) && (input % 13 == 0) )

这是因为&&运算符的优先级高于==运算符,因此语句的计算方式如下:

if (((input % 9) && (input % 13)) == 0)

不是这样的:

if ((input % 9) && ((input % 13) == 0))