好奇寫程式時大括號 { } 的排版 [論壇 - Ubuntu 程式設計]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊

(1) 2 »


好奇寫程式時大括號 { } 的排版
會員二級
註冊日期:
2012/6/27 20:43
所屬群組:
已註冊使用者
等級: 8
HP : 0 / 176
MP : 27 / 3697
EXP: 6
離線
各位大大好~

小弟在看別人的code時

大致上會看到兩種大括號的排版

第一種:

if ( a > b ) {
...
}

第二種:

if ( a > b )
{
...
}

小弟本身是用第二種排版

因為 大括號上下對稱後 我可以很快地找到相對應的判斷式

所以 小弟就很好奇 第一種的排版的優點為何?

相信版上應該也有大大是用第一種排版吧?

不知道可不可以分享一下 使用第一種排版的理由呢?

麻煩各位大大解惑了~<(_ _)>

2013/6/20 23:08
應用擴展 工具箱
回覆: 好奇寫程式時大括號 { } 的排版
管理員
註冊日期:
2011/3/11 6:32
所屬群組:
討論區管理群
等級: 44
HP : 216 / 1084
MP : 1088 / 26813
EXP: 38
離線
迷途小書僮 寫到:

if ( a > b ) {
...
}


我是用這一種,程式碼會比較密集一點

2013/6/20 23:15
本篇發表文章以「創用CC BY 3.0 或更新之台灣地區版本」授權條款釋出,如何使用敬請參考
 Creative Commons — 姓名標示 3.0 台灣 — CC BY 3.0 TW
 http://creativecommons.org/licenses/by/3.0/tw/

「你不懂的東西就不要亂講,被懂得人看破手腳就算了,騙不懂的人誤導別人,還要別人把你當成大師,這就真的是說不過去了。」
 by Allen Own
 出處 http://www.plurk.com/p/i4uogm

自由知識創作平台介紹
 https://docs.google.com/document/d/1MGG6lW_0qCgH4U785R-IwSc_INdoBGej1l-JxiA4gPE
如何建立新的自由知識創作平台文件
 https://docs.google.com/document/d/11NdzOW2lGYksfyQIcPMPye5tlmj1J0QTkgPTmQvIvKA
應用擴展 工具箱
回覆: 好奇寫程式時大括號 { } 的排版
會員五級
註冊日期:
2008/10/7 21:19
所屬群組:
已註冊使用者
等級: 36
HP : 0 / 896
MP : 661 / 28506
EXP: 85
離線
基本上是程式碼會比較密

不過選擇哪種風格通常是看工作環境有無規定,或是個人的喜好
重點是自始至終貫徹它,同專案內風格不要經常變來變去就好

學習、習慣使用一些常見被大家使用的經典慣例風格,也有助於自己程式碼和其他人溝通較順暢

這裡有列出一些經典的風格:
http://mmdays.wordpress.com/2007/04/24/coding-style/

2013/6/21 0:34
I′m UGP
應用擴展 工具箱
回覆: 好奇寫程式時大括號 { } 的排版
會員三級
註冊日期:
2008/12/10 7:19
所屬群組:
已註冊使用者
等級: 15
HP : 0 / 369
MP : 94 / 11549
EXP: 76
離線
迷途小書僮 寫到:
小弟本身是用第二種排版

因為 大括號上下對稱後 我可以很快地找到相對應的判斷式


用法夠規整的話,其實

if ( a > b ) {
...
}

也是能夠快速找到對應的判斷式,因為大括號裏面的東西應該會是有縮進的,從尾括號往上找第一個擁同級縮進的項目,那就是判斷式了。

V大範例碼中的 case 沒有縮進,看起來就稍微亂了些。不過這是個人偏見,易懂就好。

2013/6/21 7:23
應用擴展 工具箱
回覆: 好奇寫程式時大括號 { } 的排版
管理員
註冊日期:
2012/1/14 18:41
所屬群組:
討論區管理群
等級: 20
HP : 0 / 480
MP : 159 / 10699
EXP: 23
離線
基本上是自己習慣就好,以後看得懂就好了,java的話個人推荐
if () {
}
C的話我都會使用
if ()
{
}
不過因為小弟寫程式都會固定加上空白,以避免擠在一起看了很難過。

2013/6/21 9:27
應用擴展 工具箱
回覆: 好奇寫程式時大括號 { } 的排版
會員三級
註冊日期:
2009/4/25 16:55
所屬群組:
已註冊使用者
等級: 12
HP : 0 / 294
MP : 62 / 8879
EXP: 76
離線
基本上這是看個人習慣,我是用第一種,因為Tcl規定大括號一定要放在
條件式旁,所以其他語言我也統一沿用這個規則。
if { 條件 } {
}

其實我比較討厭的是某些語言當if只有單行要處理時,
有些人習慣寫法是省略括號:
if ( 條件 )
執行句1
執行句2

雖然大家都知道,當不滿足條件時,不會執行到執行句1。
但是在快速瀏覽code的時候,超容易被誤導。
所以個人習慣是單行執行句照樣用括號:
if ( 條件 ) {
執行句1
}
執行句2

或是:
if ( 條件 ) { 執行句1 }
執行句2

2013/6/21 10:22
太空工程車準備完成。

嘎!你嚇了我啦~~~
這就是你的計畫?!
你是沒路戰隊員了嗎?
應用擴展 工具箱
回覆: 好奇寫程式時大括號 { } 的排版
會員一級
註冊日期:
2006/12/1 13:45
所屬群組:
已註冊使用者
等級: 4
HP : 0 / 75
MP : 9 / 2819
EXP: 3
離線
我個人是用 vim 寫程式,所以會用到 vim 裡面的「折疊(fold)」功能。我習慣用第2種寫法,這樣程式碼摺疊起來的時候,還能看到 if(...) 的判斷式,看起來比較清楚些。
(如附件圖中的第 20-21 行)

附件:



png  Terminal_004.png (44.17 KB)
2580_51c3f0df06bce.png 657X459 px

2013/6/21 14:21
應用擴展 工具箱
回覆: 好奇寫程式時大括號 { } 的排版
管理員
註冊日期:
2011/3/11 6:32
所屬群組:
討論區管理群
等級: 44
HP : 216 / 1084
MP : 1088 / 26813
EXP: 38
離線
雪凡 寫到:
V大範例碼中的 case 沒有縮進,看起來就稍微亂了些。不過這是個人偏見,易懂就好。

我是故意這樣做的XD
因為個人的 coding style 會造成縮排會有很多層,所以不只是縱向的 code ,橫向的 code 也是會儘量讓它密集一點

這個特殊的 case 也適用於 C 的 label

int main(void){

start_program:
 goto exit_program;
exit_program:
 return 0;
}

2013/6/21 16:27
本篇發表文章以「創用CC BY 3.0 或更新之台灣地區版本」授權條款釋出,如何使用敬請參考
 Creative Commons — 姓名標示 3.0 台灣 — CC BY 3.0 TW
 http://creativecommons.org/licenses/by/3.0/tw/

「你不懂的東西就不要亂講,被懂得人看破手腳就算了,騙不懂的人誤導別人,還要別人把你當成大師,這就真的是說不過去了。」
 by Allen Own
 出處 http://www.plurk.com/p/i4uogm

自由知識創作平台介紹
 https://docs.google.com/document/d/1MGG6lW_0qCgH4U785R-IwSc_INdoBGej1l-JxiA4gPE
如何建立新的自由知識創作平台文件
 https://docs.google.com/document/d/11NdzOW2lGYksfyQIcPMPye5tlmj1J0QTkgPTmQvIvKA
應用擴展 工具箱
回覆: 好奇寫程式時大括號 { } 的排版
會員四級
註冊日期:
2007/8/12 16:54
來自 Taiwan-Kaohsiung
所屬群組:
已註冊使用者
等級: 16
HP : 0 / 393
MP : 107 / 13848
EXP: 74
離線
慘了我都混合一起來XD

完全看心情,如果條件是長度夠短,就第一種
如果太長就會用第二種

不過有些IDE會很雞婆的幫你變成第二種

2013/6/21 18:47
應用擴展 工具箱
回覆: 好奇寫程式時大括號 { } 的排版
會員二級
註冊日期:
2012/4/28 23:08
所屬群組:
已註冊使用者
等級: 4
HP : 0 / 92
MP : 11 / 1970
EXP: 68
離線
這個問題很有趣,我剛開始學習程式語言的時候也有遇過
if( a > b ){
int abc;
float cba;
.....
}
當時也是覺得這種寫法很彆扭,但是現在卻覺得看起來很清爽
或許是這樣更容易明白內容是屬於if( a > b )?

2013/6/22 2:12
Never stop learning!

其實我的名字是KK,但是系統總是要求要超過三個字元,只好改成TheKK...
應用擴展 工具箱

(1) 2 »

 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.