為什麼C 等高階語言不設計得和Shell指令碼語言一樣,讓break與continue帶有乙個引數?

時間 2021-05-06 06:57:07

1樓:

我覺得是因為C提供了goto,所以也沒有這類break [n], continue [n]的syntax sugar,然後各類C系的語言也就繼承了此特點。

我亂說的(逃

2樓:jiangtao9999

其實我到是覺得,因為 C++ 等語言牽扯到很多層面的收尾工作,如果對迴圈等等結構體的控制太過於靈活,可能會導致記憶體的使用和管理上存在問題。導致記憶體洩漏、溢位或者閒置而導致程式 bug 太多。

所以如果不提供某些功能,你就要考慮各種層級之間的實現,也順便強制你去解決錯誤帶來的後果。

3樓:lfkdsk

loop

@for(i

in1.

.100)}

Kotlin 等一些現代化語言是支援這種方式的,和 break 直接加某種變數不同,使用指定好的迴圈名稱就可以了。

4樓:

Shell這些根本就不是物件導向語言,自然無從談物件導向,所以這種方式是可以的。

而c++這些是物件導向語言,自然是物件導向的,所以這種寫法就直接破壞了物件導向,當然咯,goto這些是為了在特殊情況下使用的,正常使用情況下不會破壞物件導向。

為什麼C語言設計的時候定義不給初值?

涇渭漳淮 c語言變數有初值,只不過初值不確定 或者說可能是髒值 如果髒值沒有意義的話,賦值為0就一定有意義嗎?也未必。賦值有效能開銷 不管是你自己賦值還是編譯器幫你賦乙個初值 追求效能的c語言顯然不會偷偷幹這種事。 這種設計,是有道理的 因為,這樣有助於,讓你形成良好的程式設計習慣。對新建的變數,進...

為什麼c語言編寫s函式在閉環計算中就會錯誤?

李雅普諾夫不穩定 如果你的s函式沒有寫錯的話,個人認為可能是函式的取樣執行頻率設定得不夠理想,如果你的s函式使用的是離散型s函式,可以嘗試提高取樣執行頻率,另外其取樣時間應該是你的powergui的整數倍。至於然後就是可以嘗試在s函式前加乙個memory模組,將時序調整一下,迭代時時序存在一到兩個差...

為什麼知乎上有的人不推薦 C 語言入門?

FRANK 因為C太底層,雖然很適合學習底層概念。但是這樣C的抽象能力低,開發效率低,想要精通很難。建議先學有GC ARC的語言,然後再學底層,學C。 黃哥 1 這個有不同的看法,有的人推薦從Python 入門學習程式設計,有的人推薦從C 語言程式設計入門。2 MIT 伯克利等大學教cs1 用的程式...