While 语句
重复执行语句,直到表达式计算为零。
语法
while ( expression ) statement
备注
expression 的测试在每次执行循环前发生;因此 while 循环执行零次或更多次。 表达式必须是整型、指针类型或包含明确的整型或指针类型转换的类类型。
当中断、导航或回归在语句体中执行时,也可以中止while 循环。请使用continue语句来结束当前迭代但不退出while循环。 继续 将控件传递给下一轮循环 while。
以下代码使用 while 循环从字符串中剪裁尾随下划线:
// while_statement.cpp #include <string.h> #include <stdio.h> char *trim( char *szSource ) { char *pszEOS = 0; // Set pointer to character before terminating NULL pszEOS = szSource + strlen( szSource ) - 1; // iterate backwards until non '_' is found while( (pszEOS >= szSource) && (*pszEOS == '_') ) *pszEOS-- = '\0'; return szSource; } int main() { char szbuf[] = "12345_____"; printf_s("\nBefore trim: %s", szbuf); printf_s("\nAfter trim: %s\n", trim(szbuf)); }
在循环顶部计算终止条件。如果没有尾随下划线,循环不执行。
do-while 语句
反复执行 statement,直到指定的终止条件 (expression) 的计算结果为零。
语法
do statement while ( expression ) ;
备注
终止条件的测试将在每次执行循环后进行;因此 do-while 循环将执行一次或多次,具体取决于终止表达式的值。 do-while 语句还可在语句体中执行 break、goto 或 return 语句时终止。
expression 必须具有算法或指针类型。执行过程如下所示:
执行语句体。
接着,计算 expression。如果 expression 为 false,则 do-while 语句将终止,控制将传递到程序中的下一条语句。如果 expression 为 true(非零),则将从第一步开始重复此过程。
以下示例演示了 do-while 语句:
// do_while_statement.cpp #include <stdio.h> int main() { int i = 0; do { printf_s("\n%d",i++); } while (i < 3); }