您當前的位置:首頁 > 曲藝

我就是突然很迷,c語言裡有whlie為什麼要定義do while這個迴圈體。。?

作者:由 陳chen陳 發表于 曲藝時間:2020-11-22

我就是突然很迷,c語言裡有whlie為什麼要定義do while這個迴圈體。。?知乎使用者2020-11-22 15:08:04

有些情況下可以減少一次判斷、減少重複程式碼。

我就是突然很迷,c語言裡有whlie為什麼要定義do while這個迴圈體。。?弗蘭克2020-11-23 10:30:48

C語言是1972年誕生的。那個時候電路執行效率真的低得嚇人,那個年代的處理器只有差不多2~10MHZ的頻率。c語言的不同語句和特定電路匹配可以執行效率更高。以後學c51微控制器的時候可能有點用處,但實際上執行效率差別是察覺不到的。

到了今天,淘寶上千元神機的安卓手機晶片,比較差的都有2GHZ,比過去快了將近一千倍。大部分程式設計師不再需要逐個時間週期地去摳程式的效能。於是乎,各種方便使用的指令碼語言大行其道,比如python。python就沒有do while了。

我就是突然很迷,c語言裡有whlie為什麼要定義do while這個迴圈體。。?我在瘋人院2020-11-24 23:35:17

while可以一次都不迴圈,do一定會迴圈至少一次

我就是突然很迷,c語言裡有whlie為什麼要定義do while這個迴圈體。。?xfan2021-04-19 13:51:36

while迴圈體理論上生成如下程式碼

1。 goto 4 if condition

2。 loop body

3。 goto 1

4。 。。。

do while迴圈體理論上生成如下程式碼

1。 loop body

2。 goto 1 if condition

3。 。。。

如果你非要用while去實現do while的話

1。 loop body

2。 goto 5 if condition

3。 loop body

4。 goto 2

5。 。。。。

C語言是貼近硬體的程式語言,不談編譯最佳化,do while迴圈是生成指令數最少的迴圈體。

如果非要用while迴圈去實現do while迴圈的話,無論是在寫法上、還是在語義上都太過囉嗦。

我就是突然很迷,c語言裡有whlie為什麼要定義do while這個迴圈體。。?emmeter2021-04-19 22:47:15

做了看結果 你用do while

比如 你把杯子倒滿就停 你正確的寫法應該是

倒水

do while (杯子不滿)

而不是

while (杯子不滿)

倒水

標簽: while  do  goto  Loop  迴圈體