目录
while循环语句
基本知识点:
while循环执行过程:
无限循环·while(1/true)
代码练习:
do语句
基本知识点:
do while循环执行过程:
代码练习:
for循环语句
基本知识点:
for循环执行过程:
代码练习:
退出循环语句
注意:这些循环语句和选择语句都没有“;”!
while循环语句
基本知识点:
for语句和while语句可以等价替换, for循环要比while循环好,推荐for循环;
在C语言所有设置循环的方法中,while语句是最简单也是最基本的。
格式:while(表达式){语句,即循环体}
while循环执行过程:
(1)求解表达式;
(2)表达式为真,则执行循环体,后执行第(3)步。若表达式的值为0,则执行第(5)步。
(3) 再次判断表达式
(4)转回第(2)步继续执行
(5)(5)循环结束,继续执行while语句下面的语句。
无限循环·while(1/true)
如果表达式的值始终非零,while语句无法终止。
但是有时候,C程序员会故意用非零常量作为控制表达式来构造无限循环。
当然,也可以使用break,goto,return等语句或者调用其他函数来终止。
for循环也可以建立无限循环:for(;;)…
代码练习:
#include
//while循环·显示平方表
int main(void)
{
int i = 1,n;
printf("This program prints a table of squares.n");
printf("Enter number of entries in table: n");
scanf("%d",&n);
while (i <= n)
{
printf("%10d%10dn",i, i*i);
i++;
}
return 0;
}
This program prints a table of squares.
Enter number of entries in table:
13
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
10 100
11 121
12 144
13 169
do语句
基本知识点:
do语句本质上就是while语句。
格式:do语句 while(表达式);
do while循环执行过程:
(1)执行一次循环体
(2)执行上述while循环执行过程
代码练习:#include//do语句·计算整数的位数 int main(void) { int digits = 0,n; printf("Enter a nonnegative integer: n"); scanf("%d",&n); do { n /= 10; digits++; } while ( n>0 ); printf("The number has %d digit(s).n",digits); return 0; }
Enter a nonnegative integer: 1234 The number has 4 digit(s).
for循环语句 基本知识点:
在for循环里面有一个变量i,在for循环外边也有一个变量i的时候,两个变量i不是一个,for语句声明的变量不可以在循环外访问(在循环外不可见)。
for循环的()里最多2个“;”
表达式是可以进行省略的:
完整的:for(i = 10; i >0;i--){…}
省略初值:i= 10;for(; i >0;i--){…}
省略步长:for(i= 10; i >0;){…i--}//此时需要注意,第二个1表达式的值需要设置为可以最终变为假
省略步长:for(i= 10; i >0;){…i--}
for语句的惯用法:
for( i = 0; i < n; i ++) → [0,n-1]
for( i = 0; i <= n; i ++) → [0,n-1]
for( i = n - 1; i >= 0; i --) → [n-1,0]
在C99中,可以直接在for循环里声明变量 for(int i = 0, j = 0; i < n; i++),只要变量类型一致,就可以省略。
稀奇古怪的用法:
1.虽然平时习惯三个表达式使用一个变量,但是,实际上关系不大。只要这个关系式值为真即可继续运行,可以三个关系式用三个变量
例如:for(square = 1; i <= n; odd +=2){…} //不推荐使用
2.空语句:
for( d = 2; d < n; d++)
{
if( n % d == 0) break;
}
//等同于下面这个:
for( d = 2; d < n && n % d != 0; d++)
;
//注意” ;"的位置
for循环执行过程:
for(表达式1;表达式2;表达式3)语句;
(1)先求解表达式1。
(2)求解表达式2,若其值为真(值为非0),则先执行for语句中指定的内嵌语句,后执行
第(3)步。若其值为假(值为0),则结束循环,转到第(5)步。 (3)求解表达式3。 (4)转回第(2)步继续执行 (5)循环结束,执行for语句下面的语句。
#include#include //for循环 int main(void) { int i,total; for ( i = 1, total =0; i <= 64; i++) { total += i; } printf("%d,%dn",total,i); return 0; }
退出循环语句
break用来跳出循环并把程序控制传递到循环后的下一条语句,即循环完全结束。对于退出点在循环体的中间而不是循环体之前或者之后的情况,break语句特别有用。可以在任何循环语句和switch语句中使用。但是放在return 语句后面无效。
continue语句用来跳出本次循环的剩余部分,即本次循环结束,会再次开始下一轮循环。只可以在循环体中使用。
goto语句则可以跳到函数内的任何语句上。(很少使用)
格式:
goto 标识符;
…
标识符:语句
( 标识符:语句 可以放在任何位置,但必须和goto语句在同一函数内)。



