【问题标题】:c++ why do i get errors when using ternary operator [closed]c ++为什么在使用三元运算符时会出错[关闭]
【发布时间】:2022-01-11 23:46:23
【问题描述】:

这是我的代码,我就是找不到问题所在。 我将非常感谢任何帮助!

  #include <iostream>
using namespace std;
int main()
{
    int x,I=2;

    for (x = 100 ; x <= 500; x++)
    {
        (x % 3 == 0 && x % 5 == 0)? (cout << x << endl) : (I = 2);
    }

    return 0;
}

错误:

更新: 我知道我可以使用 if ,else 但它只是让我感到好奇,顺便说一句,这个程序应该找到从 100 到 500 的所有可被 3 和 5 整除的数字。 另外,如果我运行

 #include <iostream>
using namespace std;
int main()
{
    int x,I=2;

    for (x = 100 ; x <= 500; x++)
    {
        ((x % 3 == 0) && (x % 5 == 0))? (cout << x << endl) : (cout<<"somthing");
    }

    return 0;
}

它工作正常,所以我猜问题出在第二个表达式中,有没有办法用什么都不做的东西替换它(这是 I=2 的意图)

【问题讨论】:

  • 不清楚我在这里做的变量是什么。
  • 因为这不是如何使用三元运算符的方式。简单地使用if() else BTW 有什么问题?
  • 考虑阅读有关条件运算符的参考资料:en.cppreference.com/w/cpp/language/…。也就是说,(I = 2) 的目的是什么?

标签: c++ conditional-statements ternary


【解决方案1】:

三元运算符不是 if-else。这是为了做这样的事情:

int i = (3 < 4) ? 3 : 4;

此用法请使用 if-else。

【讨论】:

    猜你喜欢
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 2021-12-13
    • 2011-05-17
    • 2020-06-19
    • 2020-12-31
    • 2015-02-15
    相关资源
    最近更新 更多