MST
星途 面试题库

面试题:Objective-C中嵌套循环里break和continue的行为分析

假设有一个多层嵌套的for循环结构,如两层for循环,外层循环控制行数,内层循环控制列数。当在内层循环中使用break和continue关键字时,程序流程会如何改变?如果在外层循环使用这两个关键字,又会有什么不同的结果?请详细阐述并给出代码示例。
18.3万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试
  1. 内层循环使用break关键字
    • 流程改变:当在内层循环中遇到break关键字时,内层循环会立即终止,程序会跳转到外层循环的下一次迭代(如果外层循环还未结束)。
    • 代码示例
for i in range(3):  # 外层循环控制行数
    for j in range(3):  # 内层循环控制列数
        if j == 1:
            break
        print(f"i: {i}, j: {j}")

在上述代码中,当内层循环的j等于1时,内层循环会终止,然后外层循环进行下一次迭代。

  1. 内层循环使用continue关键字
    • 流程改变:当在内层循环中遇到continue关键字时,内层循环会跳过当前迭代中continue之后的代码,直接进入下一次迭代。
    • 代码示例
for i in range(3):  # 外层循环控制行数
    for j in range(3):  # 内层循环控制列数
        if j == 1:
            continue
        print(f"i: {i}, j: {j}")

在上述代码中,当内层循环的j等于1时,会跳过print语句,进入内层循环的下一次迭代。

  1. 外层循环使用break关键字
    • 流程改变:当在外层循环中遇到break关键字时,整个嵌套循环会立即终止,程序会跳出外层循环,继续执行外层循环之后的代码。
    • 代码示例
for i in range(3):  # 外层循环控制行数
    for j in range(3):  # 内层循环控制列数
        if i == 1:
            break
        print(f"i: {i}, j: {j}")
    if i == 1:
        break

在上述代码中,当外层循环的i等于1时,整个嵌套循环会终止。

  1. 外层循环使用continue关键字
    • 流程改变:当在外层循环中遇到continue关键字时,外层循环会跳过当前迭代中continue之后的代码,直接进入下一次迭代,内层循环会重新开始新一轮完整的循环。
    • 代码示例
for i in range(3):  # 外层循环控制行数
    if i == 1:
        continue
    for j in range(3):  # 内层循环控制列数
        print(f"i: {i}, j: {j}")

在上述代码中,当外层循环的i等于1时,会跳过内层循环的执行,直接进入外层循环的下一次迭代。