While 语句
重复执行语句,直到表达式计算为零。
语法
1
2
|
while ( expression ) statement |
备注
expression 的测试在每次执行循环前发生;因此 while 循环执行零次或更多次。 表达式必须是整型、指针类型或包含明确的整型或指针类型转换的类类型。
当中断、导航或回归在语句体中执行时,也可以中止while 循环。请使用continue语句来结束当前迭代但不退出while循环。 继续 将控件传递给下一轮循环 while。
以下代码使用 while 循环从字符串中剪裁尾随下划线:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
// 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) 的计算结果为零。
语法
1
2
3
|
do statement while ( expression ) ; |
备注
终止条件的测试将在每次执行循环后进行;因此 do-while 循环将执行一次或多次,具体取决于终止表达式的值。 do-while 语句还可在语句体中执行 break、goto 或 return 语句时终止。
expression 必须具有算法或指针类型。执行过程如下所示:
执行语句体。
接着,计算 expression。如果 expression 为 false,则 do-while 语句将终止,控制将传递到程序中的下一条语句。如果 expression 为 true(非零),则将从第一步开始重复此过程。
以下示例演示了 do-while 语句:
1
2
3
4
5
6
7
8
9
10
|
// do_while_statement.cpp #include <stdio.h> int main() { int i = 0; do { printf_s( "\n%d" ,i++); } while (i < 3); } |