c语言中问号和冒号的连用是什么意思?

qq_慕沐7060782
浏览 10871回答 3
3回答

阿旭_

三目运算符,可代替if(){}else{}因写起来比较方便(一行代码就搞定了),常用来赋值时判断用。例:int a;//……if(a<0){     a = 0;}else{     a = a;//当然了,这句话写不写其实都一样,只是为了更好的理解三目运算符的变形形式}//使用a的值之前,a的值肯定不会是负数==============使用三目运算符的代替方案=========int a;//.......a = ( a<0 ? 0 : a ) ;//圆括号可以省略

阿旭_

a > b ? (max = a, min = b) : (max = b, min = a); max > c ? (min > c ? min = c : 1) : max = c;改if形式如下int x ;//设置a>b三目运算结果表达式的值xif ( a>b ){      max = a;      min = b;      x = min;//最后一个式子的值,即min的值}else {    max = b;    min = a;    x = min;}//表达式的值最终是x,但是上面的例子,并没有赋值,所以结果x没用上//由于有分号,所以是另一个三目了,和之前无关了。int y;//再设置一个三目max > c运算结果值变量if( max > c){      int z;//设置三目min运算变量       if ( min > c ){               min = c ;              z = min;       }else {             z =   1 ;       }      y = z;}else{     max = c;      y = max;}

残叶听风

三元i f- e l s e 运算符布尔表达式 ? 值0:值1若“布尔表达式”的结果为true,就计算“值0”,若“布尔表达式”的结果为false,计算的就是“值1”,而且它的结果成为最终由运算符产生的值。当然,也可以换用普通的if-else 语句,但三元运算符更加简洁。尽符与if-else 明确区别开。下面便是一个例子:static int ternary(int i) {  return i < 10 ? i * 100 : i * 10;}可以看出,假设用普通的if-else 结构写上述代码,代码量会比上面多出许多。如下所示:static int alternative(int i) {if (i < 10)return i * 100;return i * 10;}第二种形式更易理解,
打开App,查看更多内容
随时随地看视频慕课网APP