1 循环语句分析

C语言中的循环语句主要有for循环,while循环和do…while循环。

循环语句的基本工作方式:

  • 通过条件表达式判断是否执行循环体
  • 条件表达式遵循if 语句的表达式原则

do,while,for的区别

  1. do 语句先执行,后判断,至少执行一次循环体
  2. while语句先判断,后执行,可能不执行循环体
  3. for语句,先判断后执行,想比较while更简洁

1.1 do…while循环

do…while循环的方式:

1.2 while循环

while循环的方式:

1.3 for循环

for循环方式:

1.4 三种循环语句使用对比

  • 代码7-1.c
#include <stdio.h>

int f1(int n)
{
    int ret = 0;
    
    if( n > 0 )
    {
        do
        {
            ret += n;
            n--;
        }
        while( n > 0 );
    }
    
    return ret;
}

int f2(int n)
{
    int ret = 0;
    
    while( n > 0 )
    {
        ret += n;
        n--;
    }
    
    return ret;
}

int f3(int n)
{
    int ret = 0;
    int i = 0;
    
    for(i=1; i<=n; i++)
    {
        ret += i;
    }
    
    return ret;
}

int main()
{
    printf("%d\n", f1(100));
    printf("%d\n", f2(100));
    printf("%d\n", f3(100));
    
    return 0;
}
  • 运行结果为:

5050
5050
5050

2 break和continue的区别

  • break表示终止循环的执行
  • continue表示终止本次循环,进入到下一次循环执行

思考:switch语句是否可以使用continue语句?

  • 代码7-2.c
#include <stdio.h>

void f1(int n)
{
    int i = 0;
    
    for(i=1; i<=n; i++)
    {
        if( (i % 2) == 0 )
        {
            break;
        }
        
        printf("%d ", i);
    }
    
    printf("\n");
}

void f2(int n)
{
    int i = 0;
    
    for(i=1; i<=n; i++)
    {
        if( (i % 2) == 0 )
        {
            continue;
        }
        
        printf("%d ", i);
    }
    
    printf("\n");
}

int main()
{
    f1(10);
    f2(10);
    
    return 0;
}

编译运行结果为:

1
1 3 5 7 9

3 总结

  • for循环先进行判断再进入循环体
  • for循环适合循环次数固定的场合
  • while循环先进行判断再进入循环体
  • while循环适合循环次数不固定的场合
  • do…while循环先执行循环体再进入循环体
  • do…while循环至少执行循环体一次