【学习记录】… ?…:… C语言问号表达式的用法感叹

【学习记录】… ?…:… C语言问号表达式的用法感叹关于问号表达式 一般的用法就是用一次 比如 returnA gt B A B 即 前面的语句成立 返回 左边 否则返回 右边 但是 既然这个表达这么简单了 一定是有其简单之大道的 比如 intMax3 intA intB intC 返回 3 个整数中的最大值 returnA gt B A gt C A

关于问号表达式,一般的用法就是用一次,比如:

return A > B ? A : B; 

即,?前面的语句成立,返回:左边,否则返回:右边。

但是,既然这个表达这么简单了,一定是有其简单之大道的,比如:

int Max3( int A, int B, int C ) { /* 返回3个整数中的最大值 */ return A > B ? A > C ? A : C : B > C ? B : C; }

直接懵了,是吧?

原来要比较三个数中的最大值,要一大段if条件,但是现在一行就解决了。

猛地一下看不懂,但是理解的了问号表达式的本质,?分开判断和结果,:分开两条分支,这样再来看,就很明朗了。

就是A > B?

是的话到A > C? 再判断;

不是的话到B > C?判断。

所以,编程的有趣就在于,逻辑其实都是一样,就看怎么把有限的工具用得更灵活巧妙了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208304.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午11:54
下一篇 2026年3月19日 上午11:54


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号