1、while语句
在C语言中,while
循环语句用于重复执行一段代码块,直到指定的条件不再满足为止。
while循环 : 也称为条件循环。在执行时,会先对条件表达式进行求值判断,如果条件为True,则执行循环体。循环体执行完毕后,继续判断条件表达式,直到条件为False时终止循环。也可以用break关键字来提前终止循环。
语法:
while (条件表达式) {
// 循环体,要重复执行的代码块
}
例: 打印数字1到5
初始化了一个变量i
为1。然后,我们使用while
循环来检查i
是否小于或等于5。如果是,我们就打印i
的值,并递增i
。由于我们在每次迭代结束时递增了i
,因此最终i
的值会超过5,此时while
循环的条件不再为真,循环就会终止。
注意:使用while
循环时,需要特别注意确保循环条件最终会变为假,否则循环就会无限进行下去,这被称为“无限循环”。
在上面的示例中,我们通过递增i
的值来确保这一点。如果忘记递增i
,那么循环就会一直执行下去,因为i
的值永远不会超过5。
2、break关键字 和 continue关键字
2.1、break关键字
用于立即终止最近的包围它的循环(通常是 for
、while
或 do-while
循环)或 switch
语句的执行。当 break
语句被执行时,程序将跳过循环或 switch
语句的剩余部分,并继续执行循环或 switch
之后的下一条语句。
1)只能在循环体内和switch语句体内使用break。
2)不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。
3)在嵌套循环中,break 仅终止最近的包围它的循环。如果你需要终止外部循环,通常需要使用其他逻辑(比如设置一个标志变量)来跳出嵌套循环。例:
在这个例子中,当 i
等于 2 且 j
等于 3 时,我们设置标志变量 flag
为 1,并使用 break
语句跳出内层循环。然后,我们检查 flag
的值,如果为 1,则使用另一个 break
语句跳出外层循环。
2.2、continue关键字
跳过本次循环体中尚未执行的语句,立即进行下一次的循环条件判定,可以理解为只是中止(跳过)本次循环,接着开始下次循环。
1)continue语句并没有使整个循环终止。
2)continue只能在循环语句中使用。
例:
在这个例子中,当 i
是偶数时,continue
语句会执行,它会跳过 printf
语句并立即回到 for
循环的开始部分,检查循环条件 i < 10
并递增 i
。由于 printf
语句在 continue
之后,因此它不会被执行,所以只有奇数会被打印出来。
2.3、区别:
- break:
- 当在循环中遇到
break
语句时,循环会立即终止,不再执行当前循环的剩余迭代。 - 无论是
for
、while
还是do-while
循环,break
都会立即退出整个循环。 - 如果
break
语句位于嵌套循环中,它将只退出最近的(内层)循环。
- 当在循环中遇到
- continue:
- 当在循环中遇到
continue
语句时,当前迭代会立即终止,但不会退出整个循环。 - 它会跳过当前迭代中
continue
之后的所有语句,并立即回到循环的开始部分,检查循环条件,并可能开始下一次迭代(如果循环条件仍然为真)。 - 无论是
for
、while
还是do-while
循环,continue
只会影响当前迭代。 - 如果
continue
语句位于嵌套循环中,它将只影响最近的(内层)循环的当前迭代。
- 当在循环中遇到
-
简而言之:
break
退出整个循环。continue
跳过当前迭代的剩余部分并可能开始下一次迭代(如果循环条件为真)。