首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 到 IL 深度解析:第3章 選擇與循環 (10) - for 與 while 循環的等價轉換

     編輯:關於C語言

for 與 while 的功能等價性

C# 中 for 和 while 可互相轉換。for 循環的第一分號前初始化碼僅執行一次,因此編譯為 IL 時,初始化指令置於循環外,隨後以無條件跳轉進入條件檢查。

範例:for 循環的 IL 結構

// C# 代碼(同上一篇的 while/do-while 範例)
// 此處省略,重點說明 for 循環編譯模式

典型 for 編譯模式:

  1. 初始化變數(如 ldc.i4.1 stloc.0)。
  2. br.s 跳至條件檢查標籤。
  3. 循環體標籤:執行迴圈內容。
  4. 遞增/變更變數。
  5. 條件檢查標籤:比較並以條件分支(ble.s 等)決定是否回跳循環體。

關鍵指令

  • br.s:短跳轉,用於無條件轉移。
  • ble.s、bgt.s 等:有條件短跳轉,結合比較與分支。

這展示了高階循環結構在 IL 中統一為「標籤 + 條件分支」的基本模式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved