我似乎无法理解我的代码有啥问题,我无法获得输出

Posted

技术标签:

【中文标题】我似乎无法理解我的代码有啥问题,我无法获得输出【英文标题】:I cant seem to get whats wrong with my code, I cant get the output我似乎无法理解我的代码有什么问题,我无法获得输出 【发布时间】:2019-11-21 19:42:52 【问题描述】:

我一直在使用三元运算符编写奇偶数代码,但它正在显示

"expected primary-expression before ‘?’ token"

我的代码:

  
  int n;
  cout<<"enter any numbner::";
  cin>>n;

  if(n%2==0) ? cout<<"no is even::" : cout<<"no is odd::";

  return 0;

预期的 o/p 是:

enter any number:20
no is even::

【问题讨论】:

【参考方案1】:

你有一个混合if-statement和conditional operator在这里:

  if (n % 2 == 0) ? cout << "no is even::" : cout << "no is odd::";
//^^^           ^^^^

这是错误的。您可以使用条件运算符编写,例如

(n % 2 == 0) ? std::cout << "no is even::" : std::cout << "no is odd::";

或更紧凑

std::cout << ( n % 2 == 0 ? "no is even::" : "no is odd::" );
//           ^^                                           ^^

注意额外的括号,这是由于算术左移&lt;&lt; 的precedence 高于条件运算符a?b:c

【讨论】:

【参考方案2】:

您正在混淆实践。 ternery (?) 期望值来评估 - if 没有给出值。

要么做:

if(n%2==0) 
    cout<<"no is even::";
 else  
    cout<<"no is odd::";

std::string value = (n%2) ? "odd" : "even";
cout << value;
// for bonus points you can do this without a temporary variable.

【讨论】:

以上是关于我似乎无法理解我的代码有啥问题,我无法获得输出的主要内容,如果未能解决你的问题,请参考以下文章

我永远无法预测 XMLReader 的行为。有啥理解技巧吗?

似乎无法在我的脑海中获得 WPF DataBinding

我无法弄清楚我的代码有啥问题

迭代期间无法获得单独的引用

我不确定为什么我的onclick按钮与我输入文本框的内容没有关联?

Titanium Mobile 在 iOS 上无法获得正确的准确性