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

Objective-C 循環語句全解析:for、while、do-while 語法與應用

     編輯:關於C語言

Objective-C 循環語句全解析:for、while、do-while 語法與應用

Objective-C 繼承 C 語言循環語法,並新增 for...in 快速枚舉。本文對比三種基礎循環結構,並演示 1 到 10 求和經典案例。

一、三種循環語法對比

循環類型語法判斷時機適用場景
forfor(init; cond; step) { body }前置已知次數、計數器控制
whilewhile(cond) { body }前置未知次數、條件驅動
do-whiledo { body } while(cond);後置至少執行一次、菜單交互

二、完整代碼:1 到 10 求和

#import 

int main(int argc, const char *argv[]) {
    @autoreleasepool {
        // 1. for 循環
        int sum = 0;
        for (int n = 1; n <= 10; n++) {
            sum += n;
        }
        NSLog(@"for 循環求和: %i", sum); // 55
        
        // 2. while 循環
        int sum2 = 0, n2 = 1;
        while (n2 <= 10) {
            sum2 += n2;
            n2++;
        }
        NSLog(@"while 循環求和: %i", sum2); // 55
        
        // 3. do-while 循環
        int sum3 = 0, n3 = 1;
        do {
            sum3 += n3;
            n3++;
        } while (n3 <= 10);
        NSLog(@"do-while 循環求和: %i", sum3); // 55
    }
    return 0;
}

三、運行輸出

2015-11-29 14:25:08.975 for-while[2983:192052] for 循環求和: 55
2015-11-29 14:25:08.977 for-while[2983:192052] while 循環求和: 55
2015-11-29 14:25:08.978 for-while[2983:192052] do-while 循環求和: 55
Program ended with exit code: 0

四、Objective-C 特有:快速枚舉

NSArray *array = @[@1, @2, @3, @4, @5];
int sum = 0;
for (NSNumber *num in array) {
    sum += [num intValue];
}
// 等價於 for-in,自動處理邊界、類型安全
  • 適用於所有遵循 NSFastEnumeration 協議的集合(NSArray, NSSet, NSDictionary 等)
  • 性能優於傳統下標訪問,代碼更簡潔
  • 不可在循環中修改集合結構(增刪元素)

五、循環控制語句

  • break:跳出最近一層循環
  • continue:跳過本次迭代剩餘部分,進入下一次判斷
  • 嵌套循環中標籤跳轉:Objective-C 不支持 標籤 break,需用標志變量或重構

六、常見陷阱

  1. for 循環條件判斷:for (int i=0; i<10; i++) 執行 10 次 (0-9);i<=10 執行 11 次
  2. 無限循環:for(;;) 或 while(1),需內部 break
  3. 整數溢出:大循環次數用 long long 或 NSUInteger
  4. 自動釋放池:循環中大量創建臨時對象時,內部建立 @autoreleasepool 避免內存峰值

七、總結

Objective-C 循環語法與 C 完全一致,核心差異在於 快速枚舉 提供了更安全、可讀、高效的集合遍歷方式。日常開發優先使用 for...in,計數器控制用 for,條件驅動用 while,至少一次用 do-while。

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