前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >6.6 条件操作符(Conditional Operators)

6.6 条件操作符(Conditional Operators)

作者头像
代码咖啡
发布2018-09-26 15:00:48
6520
发布2018-09-26 15:00:48
举报
文章被收录于专栏:程序员叨叨叨程序员叨叨叨

文章内容源自《GPU编程与CG语言之阳春白雪下里巴人》,因笔者读书易中途放弃,遂每读一章节,将其移至简书平台,以此作为对自己读书的勉励。笔者用粗体斜体 标注了关键词句,望感兴趣的读者们一起学习共勉。猛戳这里查看更多!

6.6 条件操作符(Conditional Operators)

条件操作符的语法格式为:

代码语言:javascript
复制
expr1 ? expr2 : expr3;

expr1的计算结果为true或者flase,如果是true,则expr2执行运算,否则expr3 被计算。

条件操作符为简单的if-else语句提供了一种便利的替代方式,例如我们可以不必写:

代码语言:javascript
复制
if(a < 0){
    b = a
} else{
    c = a
}

而改写为:

代码语言:javascript
复制
(a < 0) ? (b = a) : (c = a);

Cg中的条件操作符一个独特的性能是:支持向量运算。即,expr1的计算结果可以是bool型向量,expr2和expr3必须是与expr1长度相同的向量。举例如下:

代码语言:javascript
复制
float3 h = float3(-1.0,1.0,1.0);
float3 i = float3(1.0,0.0,0.0);
float3 g = float3(1.0,1.0,0.0);
float3 k;

k = (h < float3(0.0,0.0,0.0))?(i):(g);

三元向量 h 与 float3(0.0, 0.0, 0.0) 做比较运算后结果为 (true, false, false),所以 i 的第一个数据赋值给 k 的第一个数据,g 的第二个和第三个数据赋值给 k 的第二个和第三个数据,k 的值为(1.0, 1.0, 0.0)。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.08.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 6.6 条件操作符(Conditional Operators)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档