三目運算符怎麼用?
C語言三目運算符怎麼用
a>b:a?b
如果A大於B返回A 如果相反則返回B
C++中三目運算符是什麼,怎麼用
三目運算符是?:結構的運算
所謂三目就是需要三個變量進行運算的操作。它等價於短if-else操作。
舉個簡單的例子:
c=a>b?a:b
這可分成幾個部分,用括號分開:
(a=)(2>1)?(3):(4)
最左邊是賦值操作
第二個部分是一個判斷
第三和第四部分是兩個常數
首先判斷第三部分是否成立,成立即選擇第三部分,否則選擇第四部分
它相當於
if(a>b)
c=a;
else
c=b;
上面的例子用於獲得a和b的最大值。
這種運算還可以嵌套
比如判斷year是不是閏年,是則返回1,不是返回0
flag=(year%100==0)?(year%400==0?1:0):(year%4==0?1:0)
C語言?:三目運算符用法問題。
不帶括號,實際上是這樣的效果(","優先級略低,一般都是最後執行咯)。
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++)
個人是非常不建議這麼些,代碼給別人看挺麻煩。
C++三目運算符?:是幹嘛用的?
三目運算符 <表達式1> ? <表達式2> : <表達式3> ; ,屬於關係運算符, 表達式3> 表達式2> 表達式1>
常用於關係比較,主要用於比較關係的狀態只有兩種的情況(大於 和 不大於,真 和 假)
先求表達式1的值, 如果為真, 則執行表達式2,並返回表達式2的結果 ; 如果表達式1的值為假, 則執行表達式3 ,並返回表達式3的結果
比如以下表達式:
a>0? a++:(a = 1)
當a>0為真 時,執行a++,整個表達式的值等於表達式a++的值,
當a>0為假 時,執行a=1,整個表達式的值等於表達式a=1的值。
使用三目運算符來求三個數種的最大數。 5分
int max;
//max=(max=(a>b)?a:b)>c? max:c;
C語言中三目運算符是什麼?
三目運算符為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);對於你的問題,可以理解為if() 語句一;else 語句二;a? b : c若無疑問 請採納
}
用條件表達式對上例重新編程,輸出兩個數中的大數。
三目運算符適用於那些表達
用if能做的三目運算都能做:
if(條件1){
結果1
}else if(條件2){
結果
}else{
結果3
}
條件1 ? 結果1 : ( 條件2 ? 結果2 : 結果3)
用三目運算符怎麼才能輸出字母
三目運算符本身能返回一個值。要讓它輸出,還需要輸出函數。
例如:
int x;
printf("2+3=");
scanf("%d",&x);
printf("%c",x==5?'/':'X');
怎麼用三目運算符編寫這個程序
三目運算符為a?b:c即有三個參與運算的量。
java三目運算符嵌套怎麼用
輸出結果是false
我們把它分成兩份,等號前和等號後,前:true?false:true,問號前就是表達式,表達式就是true,所以執行第一條語句:false。後:true?true:false;問號前還是true,執行true
現在false == true返回結果是false,所以b也就是false了