簡體   English   中英

需要幫助了解我的while循環中發生了什么

[英]Need help understanding what's going on in my while loop

我的程序執行得很好,但我對如何設置while循環有疑問。

我知道true和false的布爾值分別是1和0,但是我不明白為什么我的輸出向后顯示偶數和奇數(據我所知,它是向后)。 簡單地說,我不明白為什么if ( number % 2 == 0 )顯示數字是偶數,當我將其改為1時,它顯示為奇數。 我正在讀這行,如果(偶數等於假)。 我不知道那是不是我錯了。 閱讀這條線的正確方法是什么?

我設置代碼的方式現在正確顯示數字,我只是不明白為什么。 有人可以幫忙嗎?

// Program indefinitely displays an even
// or odd number until a negative number
// is entered.
#include <iostream>
using namespace std;

int main()
{

    int number;

    cout << "Please enter a number: ";
    cin >> number;

    while ( number >= 0 )
    {
        if ( number % 2 == 0 )
        {
            cout << number << " is even \n";
            cout << "Please enter a number: ";
            cin >> number;
        }
        else
        {
            cout << number << " is odd \n";
            cout << "Please enter a number: ";
            cin >> number;
        }
    }

    cout << "Thank you. \n";
    return 0;
}

number % 20 ,如果number除以2 (即是偶數 ), 1 ,如果number正的並且不划分2 (即為奇數 ),和-1如果number負的並且不划分2 (即是奇數 )。 (最后一點必須是從C ++ 11開始的情況)。

因此,由於0 == 0true ,如果且僅當number偶數時number % 2 == 0true

所以你寫了if ( number % 2 == 0 )來捕獲所有偶數情況,而else陷入奇怪的情況。

測試if ( number % 2 == 1 )僅適用於正奇怪的測試,但舊C ++標准允許這是true陰性number

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM