C语言8 循环语句

C语言8 循环语句

如何实现让某些语句按照一定的条件重复执行呢?

比如:打印从0 - N的值?
例子: goto语句

#include 
#include 
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 
#include 
void MyPrint(int x)
{
    int i = 0;
    while(i<=x)
    {
        printf("%d\n",i);
        i++;
    }
    return;
}

void main()
{
    MyPrint(100);
    return;
}

循环语句的种类

  1. while 语句
  2. do while 语句
  3. 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语句

  1. 用于switch语句中
  2. 用于循环语句中,且只跳出一层

例子:

打印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语句分析

image

while语句的分析

image

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语句反汇编

image

表达式可以省略


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);
}

你可能感兴趣的:(C语言8 循环语句)