不同开发语言下的三元运算符

原创 2004年08月19日 14:44:00

==========

PB

==========

示例8 下面的代码根据单选钮风格的yes_or_no 列的取值来设置文本的颜色当其值
为Y 时文本颜色设置为红色否则文本颜色设置为黑色
integer color1, default_color
string mod_string, err
color1 = 255 //红色
default_color = 0//黑色
mod_string = "yes_or_no.Color ='"+ String(default_color) &
+ "~tif(yes_or_no=~~'Y~~'," + String(color1)+ "," &
+ String(default_color)+ ")'"
err = dw_emp.Modify(mod_string)
IF err <> "" THEN
MessageBox("状态", &
"修改yes_or_no 列的文本颜色失败出错位置为" + err)
RETURN
END IF

=========

VB

=========

本示例使用 IIf 函数来计算 CheckIt 过程的 TestMe 参数,并且如果参数值大于 1000 则返回字“Large”;否则返回字“Small”。

Function CheckIt (ByVal TestMe As Integer) As String
   CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
==========
C#
==========
?: 运算符称为条件运算符。有时,它也称为三元运算符。 
conditional-expression:(条件表达式:)
conditional-or-expression(条件或表达式)
conditional-or-expression   ?   expression   :   expression(条件或表达式   ?   表达式   :   表达式)

b ? x : y 形式的条件表达式首先计算条件 b。然后,如果 btrue,则计算 x,并且它成为运算结果。否则计算 y,并且它成为运算结果。条件表达式从不同时计算 xy

条件运算符向右关联,表示运算从右到左分组。例如,a ? b : c ? d : e 形式的表达式按 a ? b : (c ? d : e) 计算。

?: 运算符的第一个操作数必须是可以隐式转换为 bool 的类型的表达式,或者是实现 operator true 的类型的表达式。如果两个要求都不满足,则发生编译时错误。

?: 运算符的第二个和第三个操作数决定了条件表达式的类型。设 XY 为第二个和第三个操作数所属的类型。然后,

  • 如果 XY 的类型相同,则此类型为该条件表达式的类型。
  • 否则,如果存在从 XY 的隐式转换(第 6.1 节),但不存在从 YX 的隐式转换,则 Y 为条件表达式的类型。
  • 否则,如果存在从 YX 的隐式转换(第 6.1 节),但不存在从 XY 的隐式转换,则 X 为条件表达式的类型。
  • 否则,无法确定条件表达式的类型,且发生编译时错误。

b ? x : y 形式的条件表达式的运行时处理包括以下步骤:

  • 首先计算 b,并确定 bbool 值:
    • 如果存在从 b 的类型到 bool 的隐式转换,则执行该隐式转换以产生 bool 值。
    • 否则,调用 b 的类型中定义的 operator true 以产生 bool 值。
  • 如果以上步骤产生的 bool 值为 true,则计算 x 并将其转换为条件表达式的类型,且这成为条件表达式的结果。
  • 否则,计算 y 并将其转换为条件表达式的类型,且这成为条件表达式的结果。

=======

SQL SERVER

=======

IIf

返回由逻辑测试确定的两个数值或字符串值之一。

语法
数字

IIf(«Logical Expression», «Numeric Expression1», «Numeric Expression2»)

如果 «Logical Expression» 取值为 TRUE,则此函数返回 «Numeric Expression1»,否则,返回 «Numeric Expression2»。

字符串

IIf(«Logical Expression», «String Expression1», «String Expression2»)

如果 «Logical Expression» 取值为 TRUE,则此函数返回 «String Expression1»,否则,返回 «String Expression2»。

注释

只有当 «Logical Expression» 的值为零时,才认为该表达式是 FALSE。任何其它值都被解释为 TRUE。

不推荐用 Iif 函数基于搜索条件创建成员的集合。请改用 Filter 函数根据逻辑表达式评估指定集合中的每个成员,然后返回成员的子集合。

示例
数字

如果 Measures.CurrentMember 是空单元,则下面的示例返回 0,否则返回 1:

IIf(IsEmpty(Measures.CurrentMember), 0, 1)
字符串

如果 Measures.CurrentMember 是空单元,则下面的字符串返回字符串 "Yes",否则返回字符串 "No":

IIf(IsEmpty(Measures.CurrentMember), "Yes", "No")

Java学习之三元运算符-if语句

三元运算符package basis.day02; /** * 三元运算符(条件表达式)?表达式1:表达式2;(若为真输出1,若为假输出2) * 其中表达式1和表达式2的数据类型要一致。 * 三...
  • wangligong
  • wangligong
  • 2016年07月11日 19:16
  • 2157

第三章 C语言运算符与表达式

C语言运算符与表达式
  • ITTechnologyHome
  • ITTechnologyHome
  • 2016年05月30日 22:10
  • 5153

基础篇—if和三元运算的区别

今天和大家谈谈关于if判断语句和三元运算符的区别,if判断语句相信大家已经用的不能在熟练了,不过我还是啰嗦下其语法: if(表达式){ 执行语句   }   如果条件成立则会进入if的作用域并执行其...
  • qq1723205668
  • qq1723205668
  • 2016年06月13日 22:42
  • 4445

关于编程语言中?:运算符(三元表达式)的一个小实验

今天看c++的时候,看到?:运算符这一小节给了一段很有趣的代码。 //?:三元表达式 #include const char x[2][20] = { "Jason ","at your servic...
  • DGPLM
  • DGPLM
  • 2016年09月28日 17:38
  • 446

03.Java语言基本语法之运算符,算数、赋值、比较、逻辑、位、三元运算等

---1.12算术运算符: +,-,+,-,*,/,%,++,--, 取模:%取余数,结果的符号和被模数一致。 13%5=3 13%(-5)=3 -13%5=-3 -13%(-5)=-3 ------...
  • Lingbulei
  • Lingbulei
  • 2017年11月14日 23:30
  • 98

JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客...
  • qq_26787115
  • qq_26787115
  • 2016年05月07日 12:49
  • 11507

关于不同编译器下C语言中自加(++)运算符的解释

这篇备忘是由同学发的一个疑问,确实我也忘了我在学的时候遇到这个问题么有,主要是很少这么用过,而且纯数学计算也没有怎么写过。因为相对来说,用matlab会更好。 其实C语言是门精美的语言,也是我认为最...
  • altand
  • altand
  • 2012年02月07日 10:59
  • 1410

C语言和C++的几点不同之处,const,register,三目运算符,&引用

1、先说register吧 在c++中: (1)register 关键字无法在全局中定义变量,否则会被提示为不正确的存储类。 (2)register 关键字在局部作用域中声明时,可以用 & 操...
  • HelloNiGeSB
  • HelloNiGeSB
  • 2016年06月24日 09:45
  • 269

Java语言基础{Java_se(02)}-字面量和常量-变量的基本定义和使用-Java表达式-数据类型和分类-基本数据类型的转换-算数运算符-赋值运算符-比较运算符-三元运算符-逻辑运算符

Java语言基础{Java_se(02)}字面量和常量 常量:程序中固定不变化的值。 常量分类: 字面值常量: 比如:整数常量1,2,3,小数常量3.14,布尔常量false,true等. ...
  • programmer_bobo
  • programmer_bobo
  • 2017年06月29日 16:53
  • 161

《iOS移动开发从入门到精通》图书连载12:元组类型、一元、二元和三元运算符、 比较运算符

3.2.5 元组类型元组是一个包含了若干个相关联变量的对象。1 let people = ("John",33) 由于Swift的类型推导,people被推导为(String, Int)...
  • fzhlee
  • fzhlee
  • 2017年01月03日 12:28
  • 1235
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:不同开发语言下的三元运算符
举报原因:
原因补充:

(最多只允许输入30个字)