看板 C_and_CPP 關於我們 聯絡資訊
#include<stdio.h> #include<stdlib.h> int main() { int a=40,b=20; printf("%d",(a>b?a:b)); system("pause"); } 可不可以問一下,為什麼a>b?a:b,是取兩個值的最大值阿? 雖然這樣的寫法挺簡單的但有比用if else來判斷省時間嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.43.154.231
silia:因為a>b true的話就會輸出a false就會輸出b 就等於判斷最大 10/29 20:46
silia:值阿~ 10/29 20:46
glennchen:我覺得有比較快 10/29 20:59
joefaq:有沒有比較快看編出來的組語就知道了 10/29 21:24
purpose:不用想這麼多,有些團隊直接規定不準用這三元運算子 10/29 21:28
glennchen:是喔!為什麼不能用呀??? 10/29 21:34
x000032001:coding style吧 10/29 21:39
stupid0319:?:用的好的話好幾10行的程式碼可以縮成一行 10/29 21:40
Yshuan:見仁見智 我個人覺得這可讀性和較多的loc比起來有賺到 10/29 22:24
purpose:如果你當老大管一堆人,某天才發現某個手下有偏執狂,想當 10/29 22:41
purpose:短碼達人,把所有的if當用這個寫,每行塞一堆運算很難讀.. 10/29 22:42
softwind:int max=(a>b)?(a):(b); printf... 短碼也不是寫開心就好 10/29 22:48
purpose:goto正確使用的話也很不錯,但你很難用工具自動檢查哪些 10/29 23:04
purpose:goto是好哪些是壞,至少可以禁止,可以自動檢查用了與否 10/29 23:04
TllDA:a>b?a>c?a:c:b>c?b:c <==三元運算可以這樣用嗎? 10/30 09:45
ericinttu:為什麼要把程式寫的這麼噁心 10/30 10:55