C++ 将IF语句放入循环中?

C++ 将IF语句放入循环中?,c++,if-statement,C++,If Statement,我试图编写一个程序,接受偶数的输入,直到用户输入奇数,然后停止并添加所有偶数输入 我遇到的问题是,我打算使用if语句来确定数字是否为偶数,但一旦程序运行,我需要它再次运行,以便用户可以继续输入数字,直到他们输入奇数为止 以下是我目前掌握的情况: #include "stdafx.h" #include <iostream> using namespace std; int main() { int value; cout << "Please ente

我试图编写一个程序,接受偶数的输入,直到用户输入奇数,然后停止并添加所有偶数输入

我遇到的问题是,我打算使用
if
语句来确定数字是否为偶数,但一旦程序运行,我需要它再次运行,以便用户可以继续输入数字,直到他们输入奇数为止

以下是我目前掌握的情况:

#include "stdafx.h"
#include <iostream>

using namespace std;

int main()
{
    int value;
    cout << "Please enter a possitive number: ";
    cin >> value;
    if (value%2 == 0) { // divides the value entered by 2 too determine whether or not its even.
        cout << "Please enter another even number: ";
    }
    else
    {

    }

    cin.get();
    return 0;
}
#包括“stdafx.h”
#包括
使用名称空间std;
int main()
{
int值;
cout>值;
如果(值%2==0){//也将输入的值除以2,则确定其是否为偶数。
难道不能这样吗

int value;
bool run = true;
cout << "Please enter a possitive number: ";
while(run)
{

     cin >> value;
     if (value%2 == 0) { // divides the value entered by 2 too determine whether or not its even.
        cout << "Please enter another even number: ";
    }
    else
    {
       run=false
    }
}
int值;
bool run=true;
cout>值;
如果(值%2==0){//也将输入的值除以2,则确定其是否为偶数。
就这么做吧

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int value;
    vector<int> inputs;
    cout << "Please enter a possitive number: ";
    while (cin >> value) { // loop while successfully read an integer
        if (value%2 == 0) { // divides the value entered by 2 to determine whether or not its even.
            inputs.push_back(value);
            cout << "Please enter another even number: ";
        }
        else
        {
            break; // get out of this loop
        }

    }

    // add all the even inputs
    int sum = 0;
    for (vector<int>::iterator it = inputs.begin(); it != inputs.end(); it++) {
        sum += *it;
    }
    cout << sum << endl;

    return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
int值;
矢量输入;
cout>value){//在成功读取整数时循环
如果(值%2==0){//将输入的值除以2以确定其是否为偶数。
输入。推回(值);

cout您需要一个循环,以便在值为偶数的情况下再次请求输入

只有当
为偶数时,您才会输入
循环。并且您将循环直到
输入为偶数

然后,您需要另一个
int
,它表示总和,并在每次进入循环时(每次有偶数)将值添加到总和中

请注意,使用此解决方案,您不需要使用
if
语句。条件位于
while
循环中

#include <iostream>

using namespace std;

int main()
{
    int value;
    int sum=0;
    cout << "Please enter a possitive number: "<<endl;
    cin >> value;
    while (cin && value%2 ==0){
        sum+=value;
        cout << "Please enter another even number: "<<endl;;
        cin >> value;
    }

    cout<<"Sum of even number: "<<sum<<endl;
    return 0;
}
#包括
使用名称空间std;
int main()
{
int值;
整数和=0;

cout检查它是偶数还是奇数的另一种方法是检查最低位:

#包括
#包括
#包括
int main()
{
int enteredValue=0;
std::向量结果;
做{
std::coutenteredValue;
结果。推回(输入值);

std::coutYou在这里没有任何循环,也没有任何代码来添加数字。
while(值为偶数){添加数字并提示输入另一个数字}
注意向量是一种浪费-只要是偶数,你就可以将循环中的任何数字相加到一个运行总数中。绝对不需要记住输入的值。@托夫罗我同意,但我使用它是因为我将问题解释为所有相加都应该在输入奇数后进行。你应该检查读数是否正确成功,或者它可能会导致无限循环。感谢您的响应,这是一种计算输入值数量的方法吗?@Aaron是的,有。编写程序进行计数、编译和运行。@Aaron是的。您需要另一个
int
从0开始,每次进入循环时都不断递增。这将为您提供tota如果我要写一些像cout的东西
#include <iostream>

using namespace std;

int main()
{
    int value;
    int sum=0;
    cout << "Please enter a possitive number: "<<endl;
    cin >> value;
    while (cin && value%2 ==0){
        sum+=value;
        cout << "Please enter another even number: "<<endl;;
        cin >> value;
    }

    cout<<"Sum of even number: "<<sum<<endl;
    return 0;
}

#include <vector>
#include <iostream>
#include <algorithm>

int main()
{
    int enteredValue = 0;
    std::vector<int> result;

    do {
        std::cout<<"Please enter even number : ";
        std::cin>>enteredValue;
        result.push_back(enteredValue);
        std::cout<<'\n';
    }while(!(enteredValue & 0x01)); //check the lowest bit

    std::for_each(result.begin(), result.end(), [](int x){ std::cout<<x<<' '; });
    return 1;
}