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

cod*_*rub 4 c# int boolean operators

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

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

Son*_*nül 14

由于==运营商具有更高的优先级&&运营商,你的if语句计算第一;

(input % 13) == 0
Run Code Online (Sandbox Code Playgroud)

部分和返回truefalse取决于您的input.你的if语句会是这样的;

(input % 9) && true // or false
Run Code Online (Sandbox Code Playgroud)

因为input % 9表达式返回int,最后,你的if语句将是;

int && true
Run Code Online (Sandbox Code Playgroud)

逻辑AND intbool变量之间没有意义.

来自&&运营商(C#参考)

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

你说;

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

那你应该像他们一样使用它们;

if ((input % 9 == 0) && (input % 13 == 0))
Run Code Online (Sandbox Code Playgroud)