关于return语句问题

比如:return(a>b?a:b);这句话可以顺利运行,但是如果改为a>b?returna:returnb;就出现了错误请问错在哪里?... 比如:
return(a>b?a:b);这句话可以顺利运行,但是如果改为
a>b ? return a: return b ; 就出现了错误 请问错在哪里?
展开
 我来答
tianjie890000
推荐于2016-02-28 · TA获得超过1739个赞
知道小有建树答主
回答量:339
采纳率:0%
帮助的人:473万
展开全部
楼主这个题目有一定的认识缺陷,可能是没有把题目的原弄的清楚,有那么点含糊,所以导致理解透彻。我给你分析下!

首先你使用return(a>b?a:b),也是为了的到一个数来提供给你的主函数,
所以可以这样分解,
z=a>b?a:b;
return z;
即是把z的值返回到主函数中。那么这样就可以合并其起来为 return a>b?a:b.也就表明return后面不仅可以十个值,也可以是个表达式,所以这样合并是合法的。

但是,你在a>b?return a:return b;中在return 后使用a和b 便面看是合法的,但仔细研究 表达式1?表达式2:表达式3这种类型的条件表达式你就知道,它里面的三个参数都必须为表达式。再看看你的式子,表达式1对应你的a>b,显然是个表达式,但你后面的表达式2,和表达式3对应的分别为return a和return b,这不是个表达式,而是一个函数,return函数,所以肯定是错误的。

所以楼主在分析这类题目是一定要看里面,而且还要看外面,这样才会做到万无一失。
fox000002
2010-08-15 · TA获得超过3824个赞
知道大有可为答主
回答量:2356
采纳率:97%
帮助的人:1162万
展开全部
这个三目运算符的结果是一个值

只能作为 rvalue

在运算中写 return 语句是非法的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式