我正在接受一本書的挑戰,它要求我創建一個從20減爲0的循環,並讓我爲每個數字打印一條消息。然而,它要求我打印出一個特殊的消息每個號碼由5整除我所看到的某些例子包括這一個:爲什麼不能直接在if語句中使用模運算的結果?
if (number%5==0)
{
//your code here
}
我得到了模在做,但爲什麼這段代碼有==0
後它?例如,爲什麼不只是這樣的代碼它:
if (number%5)
{
//your code here
}
我正在接受一本書的挑戰,它要求我創建一個從20減爲0的循環,並讓我爲每個數字打印一條消息。然而,它要求我打印出一個特殊的消息每個號碼由5整除我所看到的某些例子包括這一個:爲什麼不能直接在if語句中使用模運算的結果?
if (number%5==0)
{
//your code here
}
我得到了模在做,但爲什麼這段代碼有==0
後它?例如,爲什麼不只是這樣的代碼它:
if (number%5)
{
//your code here
}
由於number%5
爲0和4之間的整數,而number%5==0
是一個布爾值。與C/C++等整數可以被視爲布爾值的語言(例如0 - > false,1 - > true)類似,在C#中,if的條件必須是「真實」布爾值。 (即使C#讓你在if條件中使用一個整數,你對代碼的建議改變也是不正確的。如果數字%5是0,前面的代碼將運行你的代碼,後面的代碼將運行你的代碼,如果數量5%不爲0)
編輯:由於埃裏克利珀在評論中說,要在if
條件下使用bool
的替代方法是使用的東西,實現implicit operator bool
爲鑄造或實現運營商true
和false
,如http://msdn.microsoft.com/en-us/library/6x6y6z4d.aspx。但據我所知,除了bool
之外,沒有任何原始單元滿足這兩個要求。
if語句中的條件必須爲真。因此,「數字%5」必須等於0. –