MST

星途 面试题库

面试题:Objective-C中break和continue在循环中的应用场景差异

在Objective-C中,描述break和continue关键字在for、while和do - while循环中的应用场景有哪些不同?请分别举例说明。
47.8万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试
  1. break关键字
    • for循环break用于立即终止整个for循环,程序将跳转到循环之后的下一条语句执行。
    for (int i = 0; i < 10; i++) {
        if (i == 5) {
            break;
        }
        NSLog(@"%d", i);
    }
    // 输出:0 1 2 3 4,当i等于5时,循环终止
    
    • while循环break同样会立即终止while循环,执行循环后面的代码。
    int j = 0;
    while (j < 10) {
        if (j == 5) {
            break;
        }
        NSLog(@"%d", j);
        j++;
    }
    // 输出:0 1 2 3 4,当j等于5时,循环终止
    
    • do - while循环break也是用来立即终止do - while循环,即使循环条件仍然可能为真。
    int k = 0;
    do {
        if (k == 5) {
            break;
        }
        NSLog(@"%d", k);
        k++;
    } while (k < 10);
    // 输出:0 1 2 3 4,当k等于5时,循环终止
    
  2. continue关键字
    • for循环continue用于跳过当前循环迭代中剩余的语句,直接开始下一次迭代,即更新循环变量并检查循环条件。
    for (int i = 0; i < 10; i++) {
        if (i == 5) {
            continue;
        }
        NSLog(@"%d", i);
    }
    // 输出:0 1 2 3 4 6 7 8 9,当i等于5时,跳过本次循环剩余语句,直接进入下一次迭代
    
    • while循环continue会跳过当前迭代中while循环体剩余的语句,直接回到循环条件判断处。
    int j = 0;
    while (j < 10) {
        if (j == 5) {
            j++;
            continue;
        }
        NSLog(@"%d", j);
        j++;
    }
    // 输出:0 1 2 3 4 6 7 8 9,当j等于5时,跳过本次循环剩余语句,回到循环条件判断(先自增j)
    
    • do - while循环continue跳过当前迭代中do - while循环体剩余的语句,回到循环条件判断处。
    int k = 0;
    do {
        if (k == 5) {
            k++;
            continue;
        }
        NSLog(@"%d", k);
        k++;
    } while (k < 10);
    // 输出:0 1 2 3 4 6 7 8 9,当k等于5时,跳过本次循环剩余语句,回到循环条件判断(先自增k)
    

总结来说,break是终止整个循环,而continue是跳过当前迭代的剩余部分,继续下一次迭代。在不同类型的循环中,它们的作用机制基本相同,但在whiledo - while循环中使用continue时,要注意确保循环变量的更新,避免死循环。