C语言 控制语句

if-else语句

if语句概述

if(表达式)

        语句块1        

else        

        语句块2

常见形式     

  简化形式

        if(表达式)语句块,例如:

        if(x>y)printf("%d",x);

  阶梯形式

        if(表达式1)语句块1

        else if (表达式2)语句块2

                else if (表达式3)语句块3

                        else if (表达式4)语句块4

#include 
#include 

int main()
{
    float score;    

    printf("please intput score: \n");
    scanf("%f",&score);
    
    if(score <0 || score >100)
    {
        printf("error");
        return 0;
    }
    else
    {
        if(score >= 90)
        {
            printf("good");
        }
        else
        {
            if(score > 70 && score <90)
            {
                printf("B");
            }
            else
            {
                if(score > 60 && score < 70)
                {
                    printf("C");
                }
                else
                {
                    if(score < 60)
                    {
                        printf("D");
                    }
                }
            }
        }
    }
    return 0;
}

嵌套形式

  if ()

        if ()语句1

                else语句2

  else

        if()语句3

                else语句4   

注意:

1.语句块,当有若干条语句的时候,必须用{.......}括号起来

2.表达式

        1.一般情况下为逻辑表达式或关系表达式

        如:if(a == b && x == y)printf("%d",a);

        2.也可以是任意类型(包括整型,实型,字符型,指针类型)

#include 
#include 

int main()
{
    int a = -1;
    if(a)
        printf("aaaaa");
    else
        printf("bbbbb");
    return 0;
}
//只要是非零,就输出是真

        3.请区分if(x=1)和if(x==1)的不同——一个是赋值一个是判断

#include 
#include 

int main()
{
    int a = -1;
    if(1=a)//建议将数字写左边,如果少写个等号编译时可以报错
        printf("aaaaa");
    else
        printf("bbbbb");
    return 0;
}
#include 
#include 

int main()
{
    int a = 5,b =  1,c =9;
    int t;

    if(a > b)
    {
        t = a;
        a = b;
        b = t;

    }
    if(a > c)
    {
        t = c;
        c = a;
        a = t;
    }
    if(b > c)
    {
        t = b;
        b = c;
        c = t;
    }

    printf("%d-%d-%d",a,b,c);
    return 0;
}
//三个数从小到大排列

switch语句

多分支选择结构

C语言 控制语句_第1张图片

 switch语句的基本形式

switch(表达式)
{
    case常量表达式1;语句块1;break;
    case常量表达式2;语句块2;break;//只能是常量表达式
    case常量表达式n;语句块n;break;

    defuault: 语句块n+1
}

switch语句的使用

        每个常量表达式的值必须各不相同,否则将出现矛盾

        当表达式的值与case后面的常量表达式的值相等时,就执行case后面的语句

        switch中的表达式可以是整型,字符型表达式或枚举

        case常量:只起语句标号的作用

        break语句用于强行跳出switch语句,一般每个case后面应有一个break语句,defalut分支后面         的break可以省略

        多个case可以执行一条语句

#include 
int main()
{
    int tmp = 1;
    switch(tmp)
    {
        case 1:
            printf("1\n");
            break;
        case 2:
            printf("2\n");
            break;
        case 3:
            printf("3\n");
            break;

        default:
            printf("not 1 2 3");
    }
    return 0;
}
#include 
int main()
{
    int tmp = 1;
    switch(tmp)
    {
        case 1:
            printf("1\n");          
        case 2:
            printf("2\n");
        case 3:
            printf("3\n");
          
        default:
            printf("not 1 2 3");
    }
    return 0;
}
//如果没有break,则输出结果为:
1
2
3
not 1 2 3


#include 
int main()
{
    int tmp = 3;
    switch(tmp)
    {
        case 1:
            printf("1\n");
        case 2:
            printf("2\n");
        case 3:
            printf("3\n");

        default:
            printf("not 1 2 3");
    }
    return 0;
}
//此时的输出结果为:
3
not 1 2 3
#include 
#include 

int main()
{
    float score;
    printf("please your scroe:");
    scanf("%f",&score);

    if(score < 0 || score > 100)
    {
        printf("input errore");
        return 0;
    }
    else
    {
        switch((int)score/10)//(int)强制将float转为int
        {
             case 9:
                printf("A");
                break;
             case 8:
                printf("B");
                break;
             case 7:
                printf("B");
                break;
             case 6:
                printf("C");
                break;
            default:
                printf("D");
        }
           
    }
    return 0;
}

循环语句

goto

利用goto实现1-100求和

#include 

int main()
{
    int i = 1,sum =0;

loop:
    if(i<=100)
    {
        sum = sum + i;
        i ++;
        goto loop;
    }
    printf("sum = %d",sum);

    return 0;
}

当程序有多个出口,使用goto把这些出口集中到一处很方便,特别是函数中有很多重复的工作的时候。

理由是:

        无条件跳转易于理解

        可以减少嵌套

        可以避免那些忘记更新某一个出口点的问题

                算是帮助了编译器做优化

while

while语句构成循环

基本形式:

while(表达式)
{
    statements;
}
//先判断在执行代码,也可能一次不执行

循环条件:

        变量初值

        终止条件

        变量变化

#include 

int main()
{
    int i = 1,sum =0;


    while(i<=100)
    {
        sum = sum + i;
        i ++;

    }
    printf("sum = %d",sum);

    return 0;
}
//使用while语句进行1-100求和

do-while

基本形式:

do{
    statements;

}while(表达式);
//注意这里while后面跟分号
//do-while是先执行代码,然后再判断是否需要循环执行

for

一般形式

for(表达式1;表达式2;表达式3)
{
    statements;
}

执行过程

1.先求解表达式1,初始值

2.求解表达式2,若为真,则执行循环体,然后执行步骤三,若为假,则执行步骤5

3.求解表达式3

4.转回执行步骤2

5.执行for下面的语句

#include 

int main()
{
    int i = 1,sum =0;


    for(i=1;i<=100;i++)
    {
        sum = sum + i;
    }

    printf("sum = %d",sum);

    return 0;
}
//使用for语句完成1-100求和

for语句构成循环

        表达式1可以省略,但循环之前应要给循环变量赋值

        表达式2可以省略,将陷入死循环

        表达式3可以省略,但应该写到循环体里面

#include 

int main()
{
    int i,sum;
    i = 1;
    sum = 0;

    for(;i<=100;)//注意:这里虽然省略了,但是仍然存在两个分号
    {
        sum = sum + i;
        i++;
    }

    printf("sum = %d",sum);

    return 0;
}
#include 
#include 

int main()
{
    int i,j;
    for(i=1;i<=9;i++)
    {
        for(j=1;j<=i;j++)
            printf("%d*%d=%d \t",i,j,i*j);
        puts("");//回车
    }
    return 0;
}

辅助控制语句

break

用于从循环体内跳出一层循环体,即提前结束循环

break只能用在循环语句和switch语句中

#include 
#include 

#define pi 3.14

int mian()
{
    float r = 0,area = 0;

    for(r=1;r<10;r++)
    {
        area = pi * r * r;

        if(area>100)//当area大于100时才运行
        break;

        printf("r=%f area=%f \n",r,area);//每次都打印
    }
    return 0;
}
#include 
#include 

#define pi 3.14

int mian()
{
    float r = 0,area = 0;

    while(1)
    {
        for(r=1;r<10;r++)
        {
            area = pi * r * r;

                if(area>100)//
                    break;//只能跳出一层循环

            printf("r=%f area=%f \n",r,area);//
        }
    }
    return 0;
}

continue

结束本次循环,接着判定下一次是否执行循环

注意break和continue的区别

        continue直接结束本次循环,而break终止本层循环

#include 

int main()
{
    int n;

    for(n=100;n<=120;n++)
    {
       if(n %3 == 0)
            continue;
        printf("%d\n",n);
    }
    return 0;
}

return

return语句的一般形式:return(<表达式>)

主要用于终止包含它的函数的执行

若终止的为主函数,则主程序结束

你可能感兴趣的:(C语言,c语言,开发语言)