for 和while true 的區別

2021-08-27 13:57:10 字數 517 閱讀 7770

再看jdk原始碼的時候發現,「死迴圈」有兩種寫法:for(;;)和while(true),

我就疑問,兩者有啥區別,有啥原始碼中多數是for( ; ; )這種形式的,

編譯前              編譯後 

while (1);         mov eax,1  

test eax,eax 

je foo+23h

jmp foo+18h

編譯前              編譯後 

for (;;);          jmp foo+23h   

一目了然,for (;;)指令少,不占用暫存器,而且沒有判斷跳轉,比while (1)好。

也就是說兩者在在巨集觀上完全一樣的邏輯,但是底層完全不一樣,for相對於來說更加簡潔明瞭。

但是在arm上,這兩個無差別

arm-linux-gcc -s -o  d.s 4.c

都是:l2:

b    .l2

python學習 while True的用法

在學習過程中,經常能遇到採用while true的用法。下面以乙個例子進行說明 建立乙個使用者登入系統,使用者輸入使用者名稱和密碼,如果正確就可以進入系統。1 我自己最開始的寫法 d 資料庫字典,所有使用者的使用者名稱密碼儲存在此 name input 請輸入您的使用者名稱 if name in d...

python學習 while True的用法

在學習過程中,經常能遇到採用while true的用法。下面以乙個例子進行說明 建立乙個使用者登入系統,使用者輸入使用者名稱和密碼,如果正確就可以進入系統。1 我自己最開始的寫法 d 資料庫字典,所有使用者的使用者名稱密碼儲存在此 name input 請輸入您的使用者名稱 if name in d...

dict的用法 while True的用法

d 直接傳入字典 dict 建立空字典 dict a a b b t t 傳入關鍵字 dict zip one two three 1,2,3 對映函式方式來構造字典 dict one 1 two 2 three 3 可迭代物件方式來構造字典 d.values 只獲取字典中的值 d.keys 只獲取...