Re: [問題] 條件運算元 ? :

看板C_and_CPP (C/C++)作者 (阿水~*)時間16年前 (2009/06/17 08:38), 編輯推噓14(14010)
留言24則, 11人參與, 最新討論串3/4 (看更多)
我之前寫程式要輸出矩陣的時候 為了換行常常用到這個耶~ 主要是放在for(?; ?; 這裡); 例如for(i=0; i<31; i++,(i%7)? printf("%2d\n",m[i]) : printf("%2d ",m[i]) ) 這個例子是寫萬年曆裡面用到的 上面那個好像不太好看= =+ 先看下面的好了 假設一個陣列int a[3][4] = {...}; 通常輸出都是這樣寫 for(i=0; i<3; i++) { for(j=0; j<4; j++) { printf("%d ",a[i][j]); } printf("\n"); } 我寫程式莫名的不喜歡{} 能省則省 for(i=0; i<3; i++) { for(j=0; j<4; j++) printf("%d ",a[i][j]); printf("\n"); } 為了i迴圈的那個換行一定要加{} ˋˊ 所以我就把程式改成 for(i=0; i<3; i++,printf("\n")) for(j=0; j<4; j++) printf("%d ",a[i][j]); 老實說我不知道這樣用是不是正確的~ 但目前還沒遇到錯誤~就繼續使用了~ 曾想過要不要改成這樣 for(i=0; i<3; i++,printf("\n")) for(j=0; j<4; j++,printf("%d ",a[i][j])); 不過覺得好像太誇張了就沒有這樣做了 ※ 引述《gozha (勾炸)》之銘言: : ※ 引述《owlran (鰲倫)》之銘言: : : 這學期把C學完了,最近複習時想到一個問題 : : 條件判斷 ? 運算式1 : 運算式2 : : 如果多層的if跟else if : : 是否也可以用這種方式寫呢 ? : ( 條件判斷 )?( : ( 條件判斷 )?( : 運算式1 : ):( : 運算式2 : ) : ):( : ( 條件判斷 )?( : 運算式1 : ):( : 運算式2 : ) : ) : 好像沒有比較好看= = -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.252.32

06/17 08:45, , 1F
乍看之下應該是OK,在for裡面會想到用printf,感覺很強大
06/17 08:45, 1F

06/17 08:56, , 2F
有趣:D
06/17 08:56, 2F

06/17 09:19, , 3F
同感, 在for裡printf, 頗有趣:)
06/17 09:19, 3F

06/17 10:20, , 4F
省 {} 是壞習慣, 我是建議都加, 以後看起來清楚很多
06/17 10:20, 4F

06/17 10:21, , 5F
還有, 把程式硬壓成這樣, 既不會跑得快, 也不會容易讀
06/17 10:21, 5F

06/17 10:21, , 6F
何苦?
06/17 10:21, 6F

06/17 10:48, , 7F
同意... 程式還是簡單整齊最好..不要亂縮
06/17 10:48, 7F

06/17 11:10, , 8F
趕快報名IOCCC
06/17 11:10, 8F

06/17 13:50, , 9F
自己寫給自己看的程式, 或 write once 的, 這樣寫無可厚非啦
06/17 13:50, 9F

06/17 13:50, , 10F
如果你要跟別人合作, 千萬不要拿這種東西去整別人, 積德積德
06/17 13:50, 10F

06/17 13:52, , 11F
(write once 指的是那種跑個結果就丟掉的小程式)
06/17 13:52, 11F

06/17 13:54, , 12F
然後 run anywhere
06/17 13:54, 12F

06/17 15:04, , 13F
write once 的話, 寫這些比寫得長一點的更麻煩吧其實
06/17 15:04, 13F

06/17 16:02, , 14F
run anywhere 其實通常需要在 everywhere 都做點調整
06/17 16:02, 14F

06/17 16:03, , 15F
不容易看懂的code也不容易調整 除非真正的"一發程式"
06/17 16:03, 15F

06/17 17:04, , 16F
我就算只有一行也會用{}來括XD
06/17 17:04, 16F

06/17 17:30, , 17F
那算 write only 吧XD
06/17 17:30, 17F

06/17 19:17, , 18F
如果你要優化你的程式~大可全寫在一行 = =+..多幾個{}較好
06/17 19:17, 18F

06/18 02:52, , 19F
全部寫在一行會真的optimize到哪裡嗎?
06/18 02:52, 19F

06/18 03:38, , 20F
這真是太有創意了,傑克!
06/18 03:38, 20F

06/18 04:18, , 21F
檔案大小最佳化嗎,然後在web上傳輸替中華電信省頻寬
06/18 04:18, 21F

06/18 12:20, , 22F
寫成一行只有 JavaScript 有差吧 = =
06/18 12:20, 22F

06/18 13:14, , 23F
寫成一行不見得跑得比較快, 就算看 JS, 也不見得比較短 XD
06/18 13:14, 23F

06/20 21:22, , 24F
不喜歡{} 那一定要玩玩python呀
06/20 21:22, 24F
文章代碼(AID): #1AE3hiZS (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 3 之 4 篇):
文章代碼(AID): #1AE3hiZS (C_and_CPP)