gpt4 book ai didi

c# - 为什么模运算的结果不能直接用在 if 语句中?

转载 作者:行者123 更新时间:2023-11-30 16:17:36 26 4
gpt4 key购买 nike

我正在做一本书的挑战,它要求我创建一个从 20 倒数到 0 的循环,并让我为每个数字打印一条消息。但是,它要求我为每个可被 5 整除的数字打印一条特殊消息。我见过一些例子,包括这个:

if (number%5==0)
{
//your code here
}

我知道模数在做什么,但为什么这段代码后面有 ==0?例如,为什么不这样编码:

if (number%5)
{
//your code here
}

最佳答案

因为number%5是0到4之间的整数,而number%5==0是 bool 值。与 C/C++ 等语言不同,整数可以被视为 bool 值(例如 0 -> false,1 -> true),在 C# 中,if 的条件必须是“真实” bool 值。

(即使 C# 允许您在 if 条件中使用整数,您对代码的建议更改也不正确。如果 number%5 为 0,前一段代码将运行您的代码,后一段代码将运行您的代码如果 number%5 不为 0 的代码。)

编辑:正如 Eric Lippert 在评论中所说,在 if 条件中使用 bool 的替代方法是使用实​​现 implicit operator bool 作为转换或实现运算符 truefalse,例如 http://msdn.microsoft.com/en-us/library/6x6y6z4d.aspx .但据我所知,除了 bool 之外,没有任何原语满足这两个条件。

关于c# - 为什么模运算的结果不能直接用在 if 语句中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16929329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com