C语言8 循环语句
如何实现让某些语句按照一定的条件重复执行呢?
比如:打印从0 - N的值?
例子: goto语句
#include <stdio.h>
#include <windows.h>
void MyPrint(int x)
{
int i = 0;
B:
printf("%d\n",i);
i++;
if(i<=x)
goto B;
return;
}
void main()
{
MyPrint(1);
return;
}
通过while语句实现:
#include <stdio.h>
#include <windows.h>
void MyPrint(int x)
{
int i = 0;
while(i<=x)
{
printf("%d\n",i);
i++;
}
return;
}
void main()
{
MyPrint(100);
return;
}
循环语句的种类
- while 语句
- do while 语句
- for 语句
while 语句
while(表达式)
语句;
或者
while(表达式)
{
语句;
语句;
}
例子:
死循环
while(1)
{
printf("%d \n",i)
i++;
}
语句的嵌套
while(表达式)
{
其他语句;
}
例子:
打印1-N之间所有的偶数
while(i<=x)
{
if(i%2==0)
{
printf("%d \n",i)
}
i++;
}
循环嵌套循环语句
int j =0;
while(i<=x)
{
while(j<=0)
{
printf("%d \n",j)
j++;
}
i++;
}
break语句
- 用于switch语句中
- 用于循环语句中,且只跳出一层
例子:
打印1-N之间所有的数字,当N=10时跳出循环
while(i<=x)
{
if(x==10)
{
break;
}
printf("%d \n",i)
i++;
}
嵌套循环语句
int j =0;
while(i<=x)
{
while(j<=i)
{
if(j==i-1)
{
break;
}
printf("%d \n",j)
j++;
}
i++;
}
continue语句
中断当前循环,直接进行下一次
例子:
只打印奇数:
while(i<=x)
{
if(i%2==10)
{
i++;
continue;
}
printf("---:%d\n",i);
i++;
}
do..while 语句
do{
//要执行的代码
}while(表达式);
特点:
表达式即使不成立,也会执行一次
do..wihle语句分析
while语句的分析
for语句
for(表达式1;表达式2;表达式3)
{
//需要执行的代码4
}
执行顺序:
1 2 4 3
2 4 3
2 4 3
2 4 3
...
void T1()
{
print("T1 /n");
}
int T2()
{
print("T2 /n");
return -1;
}
void T3()
{
print("T3 /n");
}
void T4()
{
print("T4 /n");
}
void testfor()
{
for(T1();T2();T3())
{
T4();
}
}
for语句反汇编
表达式可以省略
for(;;)
{
print("默认成立\n");
}
for(;-1;)
{
printf("不是0就成立\n");
}
for(;0;)
{
printf("不成立\n");
}
第1、3表达式可以使用逗号
int i;
int j;
int z;
for(i=0,j=0,z=0;i<10;i++,j++,z++){
printf("%d %d %d \n",i,j,z);
}