為什麼有些編程語言寫完一句後要加分號?

尹訪玉


有了這個約定,就可以把一句寫在多行,也可以把多句寫在一行,提高了代碼書寫的靈活性和可讀性。


成都茂大叔


一個非常好的問題,我是工作多年的Web應用架構師,來回答一下這個問題。歡迎關注我,瞭解更多IT專業知識。


首先不太恰當的比喻一下,編程語言是我們告訴電腦做什麼事情怎麼做的溝通工具,那麼一句話說不完一件事,總要有個斷句吧,所以每句結束時加上分號,編譯器/解釋器就知道這句話說完了。


那麼為什麼有的語言有分號,有的沒有呢?只是不同語言的定義語法不同。舉兩個例子:

Java語言,每句結束都有分號標記的,代碼塊要用花括號,比如:


Python語言,結束可以沒有分號,代碼塊也不用花括號,用縮進空格,比如:


注意如果兩個或者多個語句寫成一行,還是需要用分號,比如:


急速馬力快de源碼客


因為語句不等於指令

1.機器指令

程序設計語言(也叫編程語言),是與電腦交互的一種體系。而計算機只能夠識別二進制的指令,確切的講,cpu只能認識二進制指令,而cpu中的二進制指令是沒有分號的,因為指令本來就是一條一條的,有操作碼和操作數構成。

2.彙編指令

後來,計算機指令,有二進制發展成為了彙編語言,也是沒有分號的,因為彙編語言與機器指令是一對一的關係。

3.高級語言

而這裡所問的分號,其實是針對高級語言。

高級語言是由一條一條語句構成,這裡的一行語句對應一條或多條cup指令。

4.編譯原理

那麼計算機如何識別高級語言中的語句呢?需要藉助於編譯器,不同的編程語言,需要藉助不同的編譯器,或解釋器,或虛擬機,將高級語言,翻譯成機器指令。

5.一條語句不一定是一行代碼

那麼什麼是一條語句呢?是不是一行代碼就是一條語句?不是,編譯器識別一條語句,只看分號。即使將兩條語句寫在一行,只要用分號隔開,也是可行的。

6.為什麼有的語句沒有分號,比如python

有的編程語言沒有分號,比如python,因為python認為一行就是一條語句,你如果一行想寫兩條語句,可以加上分號隔開(python支持分號,只是說可以省略)。如果python想跨行,就需要加上‘\\’,這是續行符。

7.總結

分號是告訴編譯器,哪些代碼是一條語句,然後將它翻譯成機器指令。


小橋談編程


句子之間的分隔符。

換行回車,是basic語言的分隔符。早期的語言如Fortran也是。

但換行回車作為語句分隔符存在缺點:

1 換行回車符不可見,可讀性可識別性受限;

2 一個句子較長時,一行屏幕可能不夠;

3 為可讀性好,一個句子多行更清晰;

所以,一行不一定是一句,一句也不一定是一行。

4 分號作為句子分隔符符合書寫閱讀習慣。

C 和 Pascal類風語言風格一直都是分號作為句子分隔符。


散居獵人


有些奇葩語言就比較特殊,LUA語言可以有分號,也可以沒有,但是你想在一行之內多寫兩句,就得用分號;Matlab的M語言也是可有可無,但是不加分號的話,它會把本句計算結果顯示在命令窗口裡,有時候會搞的運行速度很慢,有分號就只是默默的執行,需要查看結果的時候再把某一句的分號去掉。


Ren


通俗的解釋一下吧,我們在寫正式文件的時候,對於標點符號都看得很重要,因為這是一種正式的文件規範。偶爾有符號未加上時,人類可以通過自己的前後文理解進行腦補。但是計算機不一樣,在各個語言編寫的時候,每個作者都做了不同的斷句約定。

有些語言約定說,每行必須有結尾:

比如PHP,每行後面都會要求加上';'號。

又比如Python ,每行後面都不要分號。

這些其實都是代碼解釋器的翻譯標準。

就像考試一樣,有些題就是選擇題:你填ABCD就行,別把答案抄上來,有些是判斷題,你一定得打勾或打叉,千萬別寫是或否。


明哥讀世界


這個問題問得好。

①加分號相當於你說一段話需要從中斷句這樣別人才能明白你的意思電腦也一樣這個分號不但要加而且甚至要養成強迫症一樣的習慣

②加分號,相當於你說一段話需要從中斷句,這樣別人才能明白你的意思,電腦也一樣。這個分號,不但要加,而且甚至要養成強迫症一樣的習慣。

①和②就是答案。


Echo1980


看過過去的古文沒?沒有標點符號就會引起很多歧義,有了標點符號就可以給閱讀帶來更方便,編程語言中的分號,逗號,冒號,尖括號,大括號,也是為閱讀帶來方便,只不過閱讀的對象是編譯器!


前海向西


這個規定差不多最好來源於C語言,由於最初計算機能力優先,因此早期的語言對格式要求非常嚴格,例如必能中間換行的等都有各種要求。C語言放鬆了這個要求,但我猜同樣是方便解析方便,需要一種標記表示一句話結束,這個結束符就選中了分號。


面向對象思考


就好比你說一句話不停頓,可能會讓聽者產生誤解和歧異。分號的作用就是斷句的功能,當然也有很多其他的語言並不是都用分號來斷句的。


分享到:


相關文章: