看板 C_and_CPP 關於我們 聯絡資訊
我之前寫程式要輸出矩陣的時候 為了換行常常用到這個耶~ 主要是放在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
zlw:乍看之下應該是OK,在for裡面會想到用printf,感覺很強大 06/17 08:45
sunkill:有趣:D 06/17 08:56
VictorTom:同感, 在for裡printf, 頗有趣:) 06/17 09:19
adrianshum:省 {} 是壞習慣, 我是建議都加, 以後看起來清楚很多 06/17 10:20
adrianshum:還有, 把程式硬壓成這樣, 既不會跑得快, 也不會容易讀 06/17 10:21
adrianshum:何苦? 06/17 10:21
ftsyblade:同意... 程式還是簡單整齊最好..不要亂縮 06/17 10:48
MOONRAKER:趕快報名IOCCC 06/17 11:10
ledia:自己寫給自己看的程式, 或 write once 的, 這樣寫無可厚非啦 06/17 13:50
ledia:如果你要跟別人合作, 千萬不要拿這種東西去整別人, 積德積德 06/17 13:50
ledia:(write once 指的是那種跑個結果就丟掉的小程式) 06/17 13:52
zlw:然後 run anywhere 06/17 13:54
adrianshum:write once 的話, 寫這些比寫得長一點的更麻煩吧其實 06/17 15:04
MOONRAKER:run anywhere 其實通常需要在 everywhere 都做點調整 06/17 16:02
MOONRAKER:不容易看懂的code也不容易調整 除非真正的"一發程式" 06/17 16:03
ddavid:我就算只有一行也會用{}來括XD 06/17 17:04
legnaleurc:那算 write only 吧XD 06/17 17:30
godisme:如果你要優化你的程式~大可全寫在一行 = =+..多幾個{}較好 06/17 19:17
MOONRAKER:全部寫在一行會真的optimize到哪裡嗎? 06/18 02:52
MOONRAKER:這真是太有創意了,傑克! 06/18 03:38
zlw:檔案大小最佳化嗎,然後在web上傳輸替中華電信省頻寬 06/18 04:18
legnaleurc:寫成一行只有 JavaScript 有差吧 = = 06/18 12:20
ledia:寫成一行不見得跑得比較快, 就算看 JS, 也不見得比較短 XD 06/18 13:14
Arton0306:不喜歡{} 那一定要玩玩python呀 06/20 21:22