第八週的藥之程序風格

第八週的藥之程序風格
     有時候你們拿程序給我debug的時候,我可能看得很慢,因爲都是被該死的手機qq排版給毀了,而同時,我也很想給你們講講一個對於程序正確性幾乎爲0但卻非常重要的東西。
    風格!可讀性!

可讀性並不是說哦我不能讀懂這個人的程序就說明他的程序可讀性差哦。可讀性跟寫字的字體漂不漂亮一樣,並不是說他用了你不懂的高科技可讀性就差,而是他對於程序的一個排版吧。

首先舉個例子,程序1:
 
#include <iostream>

int aaa, bbb, ccc;

int main(){
    cin>>aaa>>ccc;
    bbb=aaa+ccc;
    for (int iii=1; iii<=bbb; iii++){
       aaa++; ccc--;
    }
    aaa=bbb+ccc;
    bbb=aaa+aaa;
    ccc=aaa+bbb;
    cout<<aaa+bbb+ccc<<endl;
    return 0;
}

這個程序毫無意義,所以不要管他幹啥用的(我甚至沒有編譯過),但是,他至少看起來一目瞭然,而且很嚴謹(咳至少我是這麼認爲的)
然後來看看一個酷炫的
=
=
=
=
=
=
=
=
=
=
=
程序2:

 
#include <iostream>
int _, __, ___;int main(){
cin>>_>>___;__=_+___;for (int ____=1; ____<=__; ____++){
_++; ___--;}
_=__+___;
__=_+_;___=_+__;cout<<_+__+___<<endl;
return 0;
}
我覺得這個程序很萌,但是你能讀懂這個程序麼,其實這個就是程序1,你覺得他們是一個媽生的麼?

因此,風格影響着一個代碼的可讀性,這個東西就像你寫字的字體一樣,相信大家高考的時候都被叮囑字要寫好一點了吧?同理,一個好的可讀性的程序是你能夠拿這個程序跟別人進行良好交流的保證。你如果喜歡把程序寫得個性一點沒有問題(這甚至是一個優點,有關於如何把程序寫得讓人讀不懂的比賽),但是我覺得學會走之前還是不要跑了吧。先學會如何規範自己的風格使之平易近人,再在其基礎上發展出自己的個性。

那麼我介紹一些規範風格要注意的東西
1.變量名:爲變量起名的時候最好爲變量想一些有意義的名字,比如記錄答案用int ans;記錄累加值用int sum;如果你是abcdefg黨,我覺得以後你寫一些比較長的程序時候你自己都會蛋疼,得經常翻回去看看這個變量是幹啥用的。同時注意遵循一些程序員之間比較公認的用法(比如循環變量一般用i,j,k;保存矩陣長寬一般用n,m或者h,w)

2.縮進:有的同學大概是因爲懶吧 ,代碼全部緊緊貼着左邊,其實這樣會導致你的程序塊結構不夠突出
比如
if (a)
    if (c)
        i++;
    else 
        j++;
else
    if (d)
        i++;

和 
if (a)
if (c)
i++;
else 
j++;
else
if (d)
 i++;

你覺得哪個好看呢? :)
至於用兩個空格還是使用tab鍵,就看個人喜好拉~

3.縮行 :(這個玩意其實是我自己起的名字)
有時候,不一定要一個語句一行比如
i++;
j++;
等價於
i++; j++;
這個時候怎麼取捨呢?我也是建議可讀性優先,不要爲了縮減代碼行數把所有東西都寫在一行上。但是相反的,有時候縮行會讓程序易於理解(比如同一行都代表着你的一個意圖時),在這個上有許多發揮自己性格的空間。 
4.雜類
c++表達一個東西的話寫法其實有很多的,但是一個好的寫法會讓程序簡潔,理論上用for語句可是實現一切循環,但是爲啥還會誕生了while和do while就是這個道理啦。這裏只舉一個例子
求a,b誰大
寫法1:
if (a>b) c=a;
else c=b;
寫法2:
c=(a>b)?a:b;
你喜歡哪個呢? :P

 最後,提醒一下,除了關注程序的正確性與否,自己代碼的風格也是需要雕琢的呢。同理,除了學習別人程序的高科技外,還要注意下別人的程序細節有沒有你可以學習的地方呢!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章