while(condition){
statement(s);
}
#include<stdio.h>
int main(){
int a = 10;
while (a < 15)
{
printf("a的值:%d\n",a);
a++;
}
return 0;
}
a的值:10
a的值:11
a的值:12
a的值:13
a的值:14
格式:
for (init; condition; increment){
statement(s);
}
流程图:
注意:
代码实现:
#include<stdio.h>
int main(){
//无省略for循环
for(int a = 10; a <= 15; a++){
printf("无省略循环中a的值:%d\n",a);
}
//省略init
int b = 10;
for(; b <= 15; b++){
printf("省略init中b的值:%d\n",b);
}
//省略increment
for(int c = 10; c <= 15; ){
printf("省略increment中c的值:%d\n",c);
c++;
}
return 0;
}
运行结果:
无省略循环中a的值:10
无省略循环中a的值:11
无省略循环中a的值:12
无省略循环中a的值:13
无省略循环中a的值:14
无省略循环中a的值:15
省略init中b的值:10
省略init中b的值:11
省略init中b的值:12
省略init中b的值:13
省略init中b的值:14
省略init中b的值:15
省略increment中c的值:10
省略increment中c的值:11
省略increment中c的值:12
省略increment中c的值:13
省略increment中c的值:14
省略increment中c的值:15
格式:
do{
statement();
}while(condition);
注意:循环至少被执行一次
流程图:
代码实现:
#include<stdio.h>
int main(){
int a = 10;
//在条件被判断之前至少被执行一次
do{
printf("a的值:%d\n",a);
a++;
}while (a < 15);
return 0;
}
运行结果:
a的值:10
a的值:11
a的值:12
a的值:13
a的值:14
#include<stdio.h>
/* 循环的嵌套 */
int main(){
/* for循环语句嵌套:求20以内的质数 */
int i, j;
for( i = 2; i < 20; i++){
for( j = 2; j <= (i/j); j++)
if(!(i%j)) break;
if(j > (i/j)) printf("%d昰质数\n",i);
}
/* while嵌套 */
i = 1;
while (i <= 5)
{
j = 1;
while(j <= i){
printf("%d ",j);
j++;
}
printf("\n");
i++;
}
/* do while嵌套 */
i = 1;
do
{
j = 1;
do{
printf("*");
j++;
}while(j <= i);
i++;
printf("\n");
} while (i <= 5);
return 0;
}
2昰质数
3昰质数
5昰质数
7昰质数
11昰质数
13昰质数
17昰质数
19昰质数
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
*
**
***
****
*****
作用:
流程图:
代码实现:
#include<stdio.h>
int main(){
int a = 10;
while(a < 15){
printf("a=%d\n",a);
if(a > 13){
break;
}
a++;
}
}
运行结果:
a=10
a=11
a=12
a=13
a=14
作用:当遇到continue语句时,代码会跳转到for或者while重新开始执行,与continue同一等级的代码是否执行取决于二者的先后
流程图:
代码实现:
#include<stdio.h>
int main(){
int a = 10;
do{
if(a == 15){
a = a + 1;
continue;
/*
注意continue产生的死循环情况
如将a=a+1;写到下面的位置,当a等于15时进入if,
遇到continue跳到if,a还是等于15,从而陷入死循环
*/
// a = a + 1;
}
printf("a=%d\n",a);
a++;
}while(a < 17);
return 0;
}
运行结果:
a=10
a=11
a=12
a=13
a=14
a=16
作用:允许把语句无条件地跳转到同意函数内的指定语句
注意:必须是同意函数内
格式:
goto label;
codeblock;
label:statement;
流程图:
代码实现:
#include<stdio.h>
int main(){
int a = 10;
LOOP:do //定义goto标签
{
if(a == 15){
a = a + 1;
goto LOOP;//goto语句跳转,在此处相当于continue
}
printf("a=%d\n",a);
a++;
} while (a < 20);
return 0;
}
运行结果:
a=10
a=11
a=12
a=13
a=14
a=16
a=17
a=18
a=19
#include<stdio.h>
int main(){
for(;;){
printf("无限循环!\n");
}
return 0;
}
无限循环!
无限循环!
无限循环!
无限循环!
无限循环!
无限循环!
...