#include<stdio.h>
int main(void)
{
int x=1,y=0;
x>y?printf("Hello World"):return x;
}
Run Code Online (Sandbox Code Playgroud)
为什么它显示错误:“返回”之前的预期表达式?这里需要改变什么?
为什么它显示错误:“返回”之前的预期表达式?
三元运算符是operator,需要三个操作数。第一个操作数必须是整数类型的表达式。后两个操作数必须是类型相互兼容的表达式。
一个return语句指定在它出现的函数返回值,并且使得函数终止。它不是表达式,也不会计算为值,也不是指定的返回值或任何其他值。因此,它不能是三元运算符的操作数。
因此,错误消息表示缺少三元运算符的第三个操作数,事实如此,因为该return语句不能被视为操作数。如果存在,该操作数将出现在return.
这里需要改变什么?
要获得您想要的逻辑,需要更改的是三元运算符。改用if/else语句:
if (x > y) {
printf("Hello World");
} else {
return x;
}
Run Code Online (Sandbox Code Playgroud)
一般来说,应该避免使用三元运算符。它通常会使代码更难阅读和理解,几乎没有或没有抵消好处。有一天你可能会发现一个编程上下文,其中三元是最干净、最清晰的方法,但在其他任何地方,使用if.
| 归档时间: |
|
| 查看次数: |
316 次 |
| 最近记录: |