| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3472 人关注过本帖
标题:我这三目运算为啥不行?
只看楼主 加入收藏
Sillydog
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2018-4-19
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
我这三目运算为啥不行?
char a;
scanf("%c",&a);
(a=='q')?return 0:printf("%c\n",a);

报错:expected expression before 'return'.

return 0 换成break也这样

[此贴子已经被作者于2018-6-20 20:12编辑过]

搜索更多相关主题的帖子: 三目 运算 return expression before 
2018-06-20 19:39
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:4 
?:
第二个操作数得写一个表达式
return 0 不是表达式
所以错了
用if吧

https://zh.
2018-06-20 20:39
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:4 
printf("%c",a=='q'?0:a);
2018-06-20 20:44
Sillydog
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2018-4-19
收藏
得分:0 
回复 3楼 dzy123
这样就和我要的不一样了,条件为真要 退出的;我想弄明白为啥不行啊,搞不懂很难受的
2018-06-20 21:21
Sillydog
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2018-4-19
收藏
得分:0 
回复 2楼 lin5161678
怎么不是表达式的呢,你是指没法用分号吗,可return 0换成printf("0\n")就是可以执行的了。
2018-06-20 21:30
Sillydog
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2018-4-19
收藏
得分:0 
<表达式1> ? <表达式2> : <表达式3>; "?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。

:是因为return 0 无法返回结果吗?
2018-06-20 21:33
ab1412
Rank: 7Rank: 7Rank: 7
来 自:M78星球
等 级:黑侠
威 望:4
帖 子:103
专家分:537
注 册:2018-3-15
收藏
得分:4 
我的理解的话,printf的函数声明是int printf(char *fmt, ...),可以看到是int型的,即有返回值的函数,举例来说,printf("0\n")是一个有值的表示式(楼主可以用
print("%d",printf("0\n"))
显示它的值,但是对于return 0来说其实就是和int a一样的语句,没有值,所以没法用三目运算符

printf("萌新一枚,请多指教");
2018-06-20 22:54
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
回复 6楼 Sillydog
即表达式是由一系列操作符(operators)和操作数(operands)组成的

return 既不是操作符 也不是 操作数
所以 return 0 不是表达式

我说 你对这些基本概念就没一点了解吗?

https://zh.
2018-06-20 23:11
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
回复 7楼 ab1412
int a 不是语句的

https://zh.
2018-06-20 23:12
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:4 
给自己找麻烦呢。为啥不用if else语句?如果真想弄明白为什么错,建议你查查C语言中:?运算符的用法。
2018-06-21 01:40
快速回复:我这三目运算为啥不行?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017898 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved