(1)
int main() return 0; }
int i=1; 003813be mov dword ptr [i],1 while (i<10) 003813c5 cmp dword ptr [i],0ah ;比較i和10 003813c9 jge main+56h (3813f6h) ;i>=10則跳轉,跳出迴圈 003813f4 jmp main+25h (3813c5h) ;無條件跳轉到比較處,繼續迴圈 return 0; 003813f6 xor eax,eax
do…while
實現機制類似。但是是先輸出,然後比較
(2)for
語句實現機制
前面筆記中有
(3)continue
和break
實現機制
在彙編中都用jmp
無條件跳轉指令實現
區別:continue
是跳轉到修改迴圈條件的地方
break
是跳轉到迴圈外面,即跳過迴圈,在極端的情況下break
還會忽略後面的語句和刪除迴圈結構的某些跳轉指令。
Switch語句的實現機制
switch 的底層實現機制根據 switch 需要判斷的表示式的複雜性和不同編譯器有所不同。一般情況下,switch 有三種實現機制,分別是直接判斷 跳轉表和樹型結構。編譯器根據需要判斷表示式的複雜性並採用相應的的實現方式。下面分別研究這三種 switch機制 1 直接判斷 當程式中不存在 bre...
foreach語句實現迴圈
迴圈語句是程式設計的基本語句,在c 中除了沿用c語言的迴圈語句外,還提供了foreach語句來實現迴圈。那麼我要說的就是,在迴圈操作中盡量使用foreach語句來實現。為了來更好地說明為什麼要提倡使用foreach,用如下三種不同方式來編寫迴圈語句。int narray new int 100 us...
迴圈語句python Python 迴圈語句
sonnetoab勝於藍 優秀個人部落格 gra nnet qq.comoab勝於藍 優秀個人部落格oab勝於藍 優秀個人部落格 八皇后問題 迴圈遞迴法 oab勝於藍 優秀個人部落格 queen problem with recurison board size 8 def under attack...