如何增加数字,停止它,在C ++上使用if / else语句?

时间:2016-07-10 04:58:09

标签: c++

我是这个社区的新手。所以详细说明我的问题:我想让一个数字开始为0计数到10(1,2,3,4,5,6,7,8,9,10)然后做一个if语句说是否x < = 10打印“你好世界”。接下来是一个else语句:打印“你好黑暗我的老朋友”。

以下是我提出的代码:

#include <iostream> 
using namespace std;
int main() {
for (int x = 0; x <= 10; x += 2) {
    cout << x << endl;
    if (x = 20) {
        cout << "hello world" << endl;
    }
    else {
        cout << "hello darkness my old friend" << endl;
    }
}
return 0;
}

问题在于,每次运行它时,它总是说:

0
hello world

我想说的是:

0
2
4
6
8
10
hello world

即使我改变了:

if (x = 10)

要:

if (x = *any number higher than 10*)

它仍然具有相同的输出:

0
hello world

请帮我解决这个问题。

编辑:我看到每个人都对我想要的输出感到困惑。我想要的输出是如果语句是真的,打印:

0
2
4
6
8
10
hello world

其他,打印:

hello darkness my old friend

6 个答案:

答案 0 :(得分:2)

#include <iostream> 
using namespace std;
int main() {
    for (int x = 0; x <= 20; x += 2) 
    {
        cout << x << endl;
        if (x == 10) 
        {
            cout << "hello world" << endl;
        }
        else if(x > 10)
        {
            cout << "hello darkness my old friend" << endl;
        }
    }
    return 0;
}

我认为这就是你想要的;我将循环限制增加到20,修正了if(x ==10)的比较问题,我添加了其他if(x > 10)来处理大于10的数字。希望有所帮助!

答案 1 :(得分:2)

我猜你正在寻找的是什么: -

#include <iostream>
using namespace std;
int main() {
    int num;
    cin>>num;
    //num taken from user
    if(num%2==0) {
        for (int x = 0; x <= num; x += 2) {
            cout << x << endl;
        }
        cout<<"Hello World" <<endl;
    } else {
        cout << "hello darkness my old friend" << endl;
    }
    return 0;
}
  

输出将如下: -

let num=12;   //entered by USER 

0
2
4
6
8
10
12
Hello World

// In Case of False Condition

hello darkness my old friend  

答案 2 :(得分:1)

除了分配/比较问题之外,你的循环永远不会达到比10更高的数字,因为当循环条件表明循环将结束时,它就是这样。

声明for (int x = 0; x <= 10; x += 2)说明i定义并初始化为0,循环x <= 10为真,并且每次迭代后x增加2 1}}。它与此基本相同:

{
    int x = 0;
    while (x <= 10)
    {
        // Your code inside the loop
        x += 2;
    }
}

因此,循环将为x提供以下值:02468,{{ 1}}之后10为假,循环结束。

回到作业/比较问题,这就是有些人喜欢写作的原因,例如x <= 10代替20 == x。如果错误地使用赋值而不是比较,那么表达式将是x == 20,这不是有效的表达式,编译器会生成错误。

今天的大多数编译器在用作条件时都能够检测到赋值20 = x,并且可以为此生成警告。您可能希望为编译器启用更高的警告级别来告诉您。

答案 3 :(得分:1)

问题是你将10分配给x,所以 (x=10) == true

答案 4 :(得分:1)

我试图解决这个问题,并且我将其数量计算为10,至少。 这是我的代码:

#include <iostream>
using namespace std;
int main() {
for (int x = 0; x <= 10; x += 2) {
    cout << x << endl;
    if (x == 20) {
        cout << "hello world" << endl;
    }
    else {
        cout << "hello darkness my old friend" << endl;
    }
}
return 0;
}

这是输出:

0
hello darkness my old friend
2
hello darkness my old friend
4
hello darkness my old friend
6
hello darkness my old friend
8
hello darkness my old friend
10
hello darkness my old friend

这是您需要的结果吗?

答案 5 :(得分:0)

试试这个

#include <iostream> 
using namespace std;
int main() 
{
    for (int x = 0; x <= 10; x += 2) 
    {
        cout << x << endl;
        if (x == 10)
            cout << "hello world" << endl;
        else 
            cout << "hello darkness my old friend" << endl;

    }
    return 0;
}