“?”在编程语言中为三目运算符,表示判断,可代替简单的if...else...语句。
“:”前后表示不同条件下的返回值。
三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。
三目运算格式为:<表达式1> ? <表达式2> : <表达式3>。
"?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。
一般常用于简化if...else...的写法。例如:
意为:若a<0则b=0,否则b=1,
这样就大大减小了代码量。
扩展资料:
以下是关于条件运算符的几点说明:
(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<b)?a:b执行结果就是将条件表达式的值赋予变量min,即将a和b二者中较小的数赋给min.
(4)条件表达式的优先级别仅高于赋值运算符,而低于前面遇到过的所有运算符.
因此,min=(a<b)?a:b括号可以不要,可直接写成,min=a<b?a:b如果有x<y?x+1:y-1等效于x<y(x+1):(y-1)而不等效于(x<y?x+1:y)-1
(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(a%2==0)
printf("even/n");
else
printf("odd/n");
不能写成:
(a%2==0)?printf("even/n"):printf("odd/n");
但可以用下面语句代替:
printf("%s/n",(a%2==0?"even":"odd");
该语句的作用是:若a为偶数,输出even;若a为奇数,输出odd.
(8)表达式1,表达式2,表达式3的类型可以不同.此时条件表达式的值的类型为它们中较高的类型.例如:
main(){
charc1,ch;
ch=getchar();
c1=ch<='Z'&&ch>='A'?'@':ch;
putchar(c1);
}
该程序的作用是从键盘输入任意一个字符,判别它们是否大写字母,如果是,输出一个@;否则按原样输出dot
上例中,程序第6行是关键语句,该语句实现输入字符的判断,选择与更换工作.
其执行过程为:先由此语句中的赋值号右侧的条件运算符对输入的字符进行判断和选择,若ch>='A'&&ch<='Z'成立,说明ch是大写英文字母,
此时选@;否则仍选原字符ch,然后把选择的结果赋值给原变量ch。
本回答被网友采纳C++中的?和:为运算符。 Exp1 ? Exp2 : Exp3;
其中,Exp1、Exp2 和 Exp3 是表达式。请注意冒号的使用和位置。? : 表达式的值取决于 Exp1 的计算结果。
如果 Exp1 为真,则计算 Exp2 的值,且 Exp2 的计算结果则为整个 ? : 表达式的值。如果 Exp1 为假,则计算 Exp3 的值,且 Exp3 的计算结果则为整个 ? : 表达式的值。如图所示:
? 被称为三元运算符,因为它需要三个操作数,可以用来代替如下所示的 if-else 语句:
例如:
if(y < 10){
var = 30;}else{
var = 40;}
可用一下代码代替:
var = (y < 10) ? 30 : 40;
扩展资料
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C++ 内置了丰富的运算符,并提供了以下类型的运算符:
算术运算符
关系运算符
逻辑运算符
赋值运算符
杂项运算符
其中,?和:为杂项运算符,杂项运算符相关内容如图所示:
本回答被网友采纳1、C++中的“?”表示判断,可代替简单的if...else...语句。
2、而“:”表示前后不同条件下的返回值。
例:C++中的?和:为运算符。 Exp1 ? Exp2 : Exp3;
Exp1、Exp2 和 Exp3 是表达式,请注意冒号的使用和位置。
? : 表达式的值取决于 Exp1 的计算结果。
如果 Exp1 为真,则计算 Exp2 的值,且 Exp2 的计算结果则为整个 ? : 表达式的值。
如果 Exp1 为假,则计算 Exp3 的值,且 Exp3 的计算结果则为整个 ? : 表达式的值。
扩展资料:
其他运算:赋值语句的作用是把某个常量或变量或表达式的值赋值给另一个变量。符号为‘=’。这里并不是等于的意思,只是赋值,等于用‘==’表示。
在Java语言中,三目条件运算符(?:)与C语言中的使用规则是完全一致的。
参考资料来源:百度百科—c++运算符
本回答被网友采纳“?”在编程语言中为三目运算符,表示判断,可代替简单的if...else...语句。
“:”前后表示不同条件下的返回值。
三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。
三目运算格式为:<表达式1> ? <表达式2> : <表达式3>。
"?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。
一般常用于简化if...else...的写法。例如:
意为:若a<0则b=0,否则b=1,
这样就大大减小了代码量。
扩展资料
冒号(:)用法
(1)表示机构内位域的定义(即该变量占几个bit空间)
typedef struct _XXX{
unsigned char a:4;
unsigned char c;
} ; XXX
(2)构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型。
struct _XXX{
_XXX() : y(0xc0) {}
};
(3) public:和private:后面的冒号,表示后面定义的所有成员都是公有或私有的,直到下一个"public:”或"private:”出现为止。"private:"为默认处理。
参考资料:百度百科 - 三目运算符
本回答被网友采纳你说的是C++的三目运算符。
1、三目运算符
又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。
<表达式1> ? <表达式2> : <表达式3>; "?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。
2、a ? b : c简单理解方式为:
if(a){ return b; } else {return c;}
3、三目运算符的结合性是右结合。
例:a ? b : c ? d : e是按a ? b : (c ? d : e)执行,这就是右结合。
扩展资料:
C++使用条件运算符应注意
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)
4、在a ? b : c中,b和c的类型必须一致。
参考资料:
本回答被网友采纳c++中的?是什么意思.还有:是啥
C++中的“?”是三目条件运算符之一的表达式一(?:)"?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。“:”用法1表示机构内位域的定义(即该变量占几个bit空间),用法2是构造函数后加冒号是初始...
c++中的?是什么意思.还有:是啥
C++中,“?”与“:”共同组成三目条件运算符(?:)三目条件运算符(?:)使用例子如下:x ? y:z;上面的三目条件运算的规则是:先计算表达式x的值,若x为真,则整个三目运算的结果是表达式y的值;若x为假,则整个三目运算的结果是表达式z的值。下面的例子为从两个数中找出较大的程序:int a=3,...
c++中的?和?有什么区别?
意思就是,如果obj存在,且obj.type不是null或undefined,则type=obj.type,否则的话type就赋值为空字符串。如果用常规写法,那么代码就复杂得多:if (obj && obj.type) { let type = obj.type;}else{ let type = '';}
c++中的?是什么意思???
在C++中,?:是一个唯一的三目运算符.语句1? 语句2 : 语句3 首先它对语句1进行运算,当语句1的值是 TRUE (值为非零)时,执行语句2;当语句1的值是 FALSE (值为零)时,执行语句3.如:c=(a>b)?1:0;?代表条件判定,上面的意思是如果a>b则c=1,否则c=0....
c++中“?:”是什么意思。 例如:return x>=0? x:-x
这是一个三目运算符,意思是说如过X>=0 那么返回x,否则,返回后面的-x。问号前面是判断条件,分号前面是条件为真是的返回值,分号后面是条件为假时的返回值。以你目前的情况,建议你先看C++primer 这本书
C++中操作符"|"和"||"是什么意思
| 是“按位或”运算符 ||是“逻辑或”运算符 c++运算符如下:C++的优先级优先级 操作符 结合性 1 :: 左 2 . -> [] () 左 3 ++ -- ~ ! - + & * () sizeof new delete castname_cast<type> 单目操作符 右 4 .* ->* 左 5 * \/ % 左 6 + - 左 7 << >> 左 8 <...
C++中的!是什么意思,起到什么样的作用。!在C++中怎么使用
“!”是C++中逻辑非运算符,可以用在条件判断语句if(temp!= t2)或while(t1!=t2),放在等号“=”前合起来表示“不等于”。
C++中问号什么意思
? 是 一个三目运算符 可以理解为条件 ? 结果1 : 结果2 里面的?号是格式要求。也可以理解为是不是条件成立,条件成立为结果1否则为结果2。<表达式1>?<表达式2>:<表达式3>; "?"运算符的含义是: 先求表达式1的值, 如果为真, 则执行表达式2,并返回表达式2的结果 ; 如果表达式1的值为假...
c++中?:是什么意思?
?:是一个3目运算符(需要3个操作数),用法如下:表达式1 ? 表达式2 : 表达式3;如果表达式1的结果为真,返回表达式2的结果,否则返回表达式3的结果。例子:int r=8==7 ? 1+2 : 3+4;结果是r等于7。
c++中的运算符“ ?: ”是什么关系?
三目运算符是?:结构的运算 所谓三目就是需要三个变量对能进行运算的操作 举个例子:2>1?A:B 答案就是A 先算“?”前面的,若前面成立就执行:前面的(A),反之就执行后面的(B)再举个简单的例子:a=2>1?3:4 可分成几个部分,用括号分开:(a=)(2>1)?(3):(4)最左边是赋值操作 第...