C++语言:三目运算符表达式1?表达式2表达式

2020-12-02 13:47:04 字数 5845 阅读 7978

1楼:匿名用户

你只要知道它是这么执行的就ok了,

先判断表达式1的值,为假或者0,则执行表达式3;否则,执行表达式2。

2楼:匿名用户

一成立执行二一不成立执行三谢谢采纳

3楼:旁文玉建媪

当然是从左到右了。先判断表达式1,若满足,就执行2,否则执行3。

三目运算符 表达式1 ? 表达式2 : 表达式3 ?是什么意思(;`o)o :是

4楼:千锋教育

如果符合第一个表达式的条件,就执行第二个表达式,不符合就执行第三个表达式。

小编就是这样学过来的,求采纳,可以吗?

三元运算符 表达式1?表达式2:表达式3 中,表达式

5楼:匿名用户

c#三元运算符是一个有返回值的表达式,所以不能执行无返回值语句,并且(表达式1 ? 表达式2 : 表达式3)中,表达式2和表达式3的数据类型必须相同三元运算符 表达式1?

表达式2:表达式3 中,表达式

c语言中的 (表达式1)?(表达式2):(表达式3) 什么意思?

6楼:李好

表达式1一般是判断语句的,如果是true,则返回表达式2,否则返回表达式3。

举个列 :(1>2)?1:2 ,因为1<2的,结果是false,所以返回表达式3, (1>0)?2:2, 因为1>0的,结果是true,所以返回表达式2。

如果表达式1 的值为真,那么以表达式2 的值作为整个条件表达式的值,否则以表达式3 的值作为整个条件表达式的值。

c语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。

它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到c语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。

c语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

c语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

c语言的优点是简洁紧凑、灵活方便;运算符丰富;数据类型丰富;表达方式灵活实用;允许直接访问物理地址,对硬件进行操作;生成目标**质量高,程序执行效率高;可移植性好和表达力强等。

c语言的缺点主要表现在数据的封装性上,这一点使得c在数据的安全性上有很大缺陷,这也是c和c++的一大区别。

且c语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,c语言比其他高级语言较难掌握。

c语言<表达式1>?<表达式2>:<表达式3> 怎么用,举例说明一下,谢谢!

7楼:暧昧上帝

这个称作是条件运算符

,举个例子:

if(a>b)

max=a;

else

max=b;

如果用条件运算符来的话就可以表示为:

max=(a>b)?a:b;

就是说,表达式1是一个判断的条件,如果条件为真,则是表达式2,如果为假,则是表达式3.

8楼:匿名用户

x=3>2?1:0

3>2成立则x=1,否则x=0

c++三目运算符?:是干嘛用的?

9楼:匿名用户

三目运算符《表达式1>?《表达式2>:《表达式3>; ,属于关系运算符,

常用于关系比较,主要用于比较关系的状态只有两种的情况(大于 和 不大于,真 和 假)

先求表达式1的值, 如果为真, 则执行表达式2,并返回表达式2的结果 ; 如果表达式1的值为假, 则执行表达式3 ,并返回表达式3的结果

比如以下表达式:

a>0? a++:(a = 1)

当a>0为真 时,执行a++,整个表达式的值等于表达式a++的值,当a>0为假 时,执行a=1,整个表达式的值等于表达式a=1的值。

10楼:匿名用户

a>b? a:b

等价于if(a>b)

print("%d",a);

else

print("%d",b);

11楼:匿名用户

相当于一个条件判断。

12楼:匿名用户

比如说max=a>b?a:b ; 如果a>b,max就等于a,反之等于b

c语言三目运算符怎么用

13楼:你的世界

对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。

一个条件表达式绝不会既计算x,又计算y。条件运算符是右结合的,也就是说,从右向左分组计算。例如,a ?

b : c ? d :

e将按a ? b : (c ?

d : e)执行。

《表达式1> ? 《表达式2> : 《表达式3>; "?

"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。

可以理解为条件 ? 结果1 : 结果2里面的?号是格式要求。也可以理解为是不是条件成立,条件成立为结果1否则为结果2。

扩展资料:

三目运算符,又称条件运算符,指的是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。

以下是关于条件运算符的几点说明:

(1)通常情况下,表达式1是关系表达式或逻辑表达式,用于描述条件表达式中的条件,表达式2和表达式3可以是常量,变量或表达式。例如:

(x==y)?'y':'n'

(d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)

ch=(ch>='a'&&ch<='z')?(ch+32):ch

以上均为合法的条件表达式。

(2)条件表达式的执行顺序为:先求解表达式1,若值为非0,表示条件为真,则求解表达式2,此时表达式2的值就作为整个条件表达式的值;

若表达式1的值为0,表示条件为假,则求解表达式3,表达式3的值就是整个条件表达式的值。例如:

(a>=0)?a:-a 执行结果是a的绝对值。

(3)在程序中,通过把条件表达式的值直接赋予某个变量。例如:

min=(a(4)条件表达式的优先级别仅高于赋值运算符,而低于前面遇到过的所有运算符。

因此,min=(a(5)条件运算符的结合方向为"自右至左".

(6)条件表达式允许嵌套,即允许条件表达式中的表达式2和表达式3又是一个条件表达式。例如:

x>0?1:x<0?-1:0

上述条件表达式中,表达式3部分又是一个条件表达式.根据条件表达式的结合性,上述条件表达式等价于:

x>0?1:(x<0?-1:0)

其作用是判断x的符号情况.当x为正数时,该条件表达式的值为1;当x为负数时,该条件表达式的值为-1;当x为0时,该条件表达式的值为0。

(7)条件表达式不能取代一般的if语句,仅当if语句中内嵌的语句为赋值语句(且两个分支都给同一变量赋值)时才能代替if语句。例如:

if(a%2==0)

printf("even/n");

else

printf("odd/n");

该语句的作用是:若 a 为偶数,输出 even;若 a 为奇数,输出odd。

(8)表达式1,表达式2,表达式3的类型可以不同.此时条件表达式的值的类型为它们中较高的类型。

14楼:天云一号

c语言中只有一个三目运算符,就是条件运算符(? :)条件运算符的一般使用格式如下:

表达式1 ? 表达式2 : 表达式3

举例如下:

max = (a>b) ? a : b; // 取变量a, b中较大的一个,并赋值给变量max

15楼:匿名用户

三目运算符为a?b:c即有三个参与运算的量。由条件运算符组成条件表达式的一般形式为:

表达式1? 表达式2: 表达式3

其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。 条件表达式通常用于赋值语句之中。

例如条件语句:

if(a>b) max=a;

else max=b;

可用条件表达式写为 max=(a>b)?a:b; 执行该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max。

使用条件表达式时,还应注意以下几点:

1. 条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。因此 max=(a>b)?a:b可以去掉括号而写为 max=a>b?a:b

2. 条件运算符?和:是一对运算符,不能分开单独使用。

3. 条件运算符的结合方向是自右至左。

例如:a>b?a:c>d?c:d应理解为

a>b?a:(c>d?c:d) 这也就是条件表达式嵌套的情形,即其中的表达式3又是一个条

件表达式。

void main(){

int a,b,max;

printf("\n input two numbers: ");

scanf("%d%d",&a,&b);

printf("max=%d",a>b?a:b);

16楼:匿名用户

三目运算符是?:结构的运算

所谓三目就是需要三个变量对能进行运算的操作举个简单的例子:

a=2>1?3:4

可分成几个部分,用括号分开:

(a=)(2>1)?(3):(4)

最左边是赋值操作

第二个部分是一个判断

第三和第四部分是两个常数

首先判断第三部分是否成立,成立即选择第三部分,否则选择第四部分像上面那个2>1成立,所以就执行了a=3

这种运算还可以嵌套

比如判断year是不是闰年,是则返回1,不是返回0year=(year%100==0)?(year%400==0?1:0):(year%4==0?1:0)

17楼:

不带括号,实际上是这样的效果(","优先级略低,一般都是最后执行咯)。

temp<=n ? (temp *= 2,m++):(temp = (temp-n)*2-1),m++;

也就是说,不带括号,你temp<=n成立时候,m++总是会执行两次,当然对于temp>n是没问题的。

带括号,自己比较好理解。

然后,你如果想写的高大上,简单点又正确,可以只加后面一个括号。即下面的方式。

temp<=n ? temp *=2,m++:(temp=(temp-n)*2-1,m++)

个人是非常不建议这么些,**给别人看挺麻烦。

18楼:匿名用户

三目运算: 条件?值1:值2,是根据条件的值分别值1或值2

对于本题就是依据你的取值,分别取(temp *= 2, m++) 和(temp = (temp - n)*2-1, m++)

若把?:中:前后的两个()去掉,会出现错误!

19楼:匿名用户

运算符是有运算顺序的。

比如你上面括号里面的*运算符优先级高于=,++也高于三目运算符。推荐你看一下运算符优先级。

就这个程序而言,主要问题是,逗号运算符优先级比三目运算优先级还低,去掉括号后,造成先做了三目运算,后做逗号运算。

希望这个回答对你有帮助。

c运算符-与什么等效,C语言的运算符和表达式有哪些

1楼 醒目鸟 1 表示比特位右移。效果与 除以 类似。右移一位即除以2,右移2位即除以4,右移3位即除以8 例如 数字8的二进制码为 00001000 右移一位后变为 00000100。 即00000100 4 2 还有一种含义 在c 里表示堆栈的指针位置。例如 this data 2楼 千锋教育 ...

正则表达式怎么匹配单个汉字,如何用正则表达式匹配汉字

1楼 匿名用户 u4e00 u9fa5 这样会把匹配结果放到匹配集的第一个子集中去 你就可以获取到了 2楼 梦里寻你我他 u4e00 u9fa5 如何用正则表达式匹配汉字 3楼 匿名用户 var str 你好地世界世界 假如想用正则表达式的方式找出str中 地 的下标 var re 地 consol...

如果int"a 1,b 2,c 3,d 4,则条件表达式“a

1楼 德形兼备 当a b 成立 则结果就是 a 如果 a b 不成立 则结果要判断 c 2 c 所以这题 结果是a 1 2楼 匿名用户 条件运算符的结合性是从右到左结合的,先算 c d?c d 返回 c 3 再算 a b?a c 返回值为1。 3楼 何慧哈 先判断a b为真取a值,得等式a d c ...