Chr*_*ith 5 c# loops if-statement modulo
我正在做一本书的挑战,它要求我创建一个从 20 倒数到 0 的循环,并让我为每个数字打印一条消息。但是,它要求我为每个可被 5 整除的数字打印出一条特殊消息。我已经看到了某些示例,包括这个示例:
if (number%5==0)
{
//your code here
}
Run Code Online (Sandbox Code Playgroud)
我知道模在做什么,但为什么这段代码==0后面有?例如,为什么不像这样编码:
if (number%5)
{
//your code here
}
Run Code Online (Sandbox Code Playgroud)
因为number%5是 0 到 4 之间的整数,而number%5==0是布尔值。与 C/C++ 等语言不同,在 C/C++ 中整数可以被视为布尔值(例如 0 -> false,1 -> true),在 C# 中,if 的条件必须是“真实”布尔值。
(即使 C# 允许您在 if 条件中使用整数,您对代码的建议更改也是不正确的。前一段代码将在 number%5 为 0 时运行您的代码,后一段代码将在 number%5 为 0 时运行您的代码%5 不是 0。)
bool编辑:正如埃里克·利珀特(Eric Lippert)在评论中所说,在条件中使用 a 的另一种方法if是使用implicit operator bool作为强制转换实现或实现运算符true和的东西false,例如http://msdn.microsoft.com/en-us/library/ 6x6y6z4d.aspx。但据我所知,除了bool满足这两个条件之外,没有任何原语可以满足。