使用带return的三元操作符

Usage of ternary operator with return

本文关键字:三元 操作符 return      更新时间:2023-10-16

c++中

size>5?cout<<"size is greater than 5":cout<<"size less than 5";工作,但

size>5?cout<<"size is greater than 5":return 0;抛出编译时间

这可能是一个基本的疑问,

我从三元操作符的使用中缺少什么,为什么第二个语句给出编译时错误?

谢谢。

我在使用三元运算符时遗漏了什么?

每个分支必须是一个表达式。return语句不是表达式

如果你想在分支中加入更多的通用语句,或者你只是想让代码读起来不那么糟糕,那么使用if...else

三元操作符是操作符,这意味着它是表达式的一部分。其参数(操作数)也是表达式

return 0不是一个表达式——它是一个语句。你所做的有点类似于,例如:

int a = 4 + for (int j = 0; j < 10; ++j) { std::cout << j; };

您需要流量控制,而不仅仅是不同的表达式-使用if而不是三元操作符。在您的第一行中,这也是一个好主意:谨慎地使用三元运算符,而不仅仅是作为if的简写。