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