c语言控制语句1

c语言控制语句

1. if—else语句

if语句概述:

if(判断表达式){

语句块1

}else{

语句块2

}

语句块:当有若干条语句时,必须用{…}括起来。

格式含义为:如果 表达式 为真 做语句块1,否则 做语句块2。

if—else语句大致有三种表示形式 ,接下来一一介绍

1.1 标准格式

if(表达式){

语句块1;

}else{

语句块2;

}

int main(int argc, const char *argv[])
{
    int a ;
    scanf("%d", &a);
    if (a > 10)
{
        printf(" a > 10\n");
    }
 else
{
        printf(" a <= 10\n");
    }
    return 0;
}

1.2 嵌套形式 

if()

        if() 语句块1

        else         语句块2

else

        if() 语句块3

        else()        语句块4

#include <stdio.h>
int main()
{
    float a;
    printf("请输入一个分数:");
    scanf("%f",&a);
    if(a>=100||a<=0)
        printf("输入错误请重新输入(输入的范围应为0~100)\n");
        else 
        {
            if(a>=90)
                printf("你的成绩为:A\n");
            else
            {
                if(a>=70)
                    printf("你的成绩为:B\n");
                else
                {
                    if(a>=60)
                        printf("你的成绩为:C\n");
                    else 
                        printf("你的成绩为:D\n");
                }
            }
        }
    return 0;
}

注意事项:

语句块:当有若干条语句时,必须用{……}括起来。

表达式:

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

如:if(a==b&&x==y)printf(”a=b,x=y“);

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

如:if('a')printf("%d",'a');

3.请区分if(x=1)与if(x==1)的不同。

练习:简单的排序(从小到大)

#include <stdio.h>
int main()
{
        int a=5,b=9,c=2,t;
        if(a>b)
            t=a,a=b,b=t;
        if(a>c)
            t=a,a=c,c=t;
        if(b>c)
            t=b,b=c,c=t;
        printf("%d %d %d\n",a,b,c);
        return 0;
}

 当然我写的并不够简洁,大家也可以写的更简单一点

 1.3 阶梯形式if语句

if(表达式1)语句块1

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

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

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

                                ……

                                        else 语句块n

 

练习: 输入成绩获得相应的评分

#include <stdio.h>
int main()
{
        float a;
        printf("请输入一个分数:");
        scanf("%f",&a);
        if(a>=100||a<=0)
        
        printf("输入错误请重新输入(输入的范围应为0~100)\n");
        else if(a>=90)
            printf("你的成绩为:A\n");
        else if(a>=70)
            printf("你的成绩为:B\n");
        else if(a>=60)
            printf("你的成绩为:C\n");
        else 
            printf("你的成绩为:D\n");
        return 0;
}

 练习:如何判断是否为闰年(输入一个年份,到2500年里面那些是闰年那些不是)

#include <stdio.h>
int main()
{
        int y,n=0;
        scanf("%d",&y);
        while(y<=2500)
    {
        if(y%4==0&&y%100!=0)
        {
            printf("yes:y=%d\n",y);
            n++;
        }
        else if(y%100==0&&y%400==0)
        {
            printf("yes:y=%d\n",y);
            n++;
        }
        else
            printf("no:y=%d\n",y);
    y++;
    }
        printf("%d\n",n);
        return 0;
}

2.  switch语句

多分支选择结构

switch语句的基本形式:

switch(表达式)

{case 常量表达式1:语句块1;break;

case 常量表达式2:语句块2;break;

……

case 常量表达式n:语句块n;beak;

default(一般默认最后):语句块n+1

}

switch语句的使用注意事项:

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

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

3. switch中的表达式可以是整型、字符型表达式或枚举。

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

5. break语句用于强行跳出switch体,一般每个case后面应有一个break语句,default分支的后的break可以省略。(但是如果强行把default放在前面也要加上break)

6. 多个case可以执行一组语句。

7. 如果在语句块后面不加break,程序就会往下执行一直找到break,如果一直找不到就会运行完结束。如果中途遇到break就会中途跳出。

 

 练习:重新写输入成绩那段代码出评分那段代码

#include <stdio.h>
int main()
{
        float core;
        scanf("%f",&core);
        if(core<0||core>100)
        printf("请重新输入(范围:0~100)\n");
        else
        switch((int)core/10)
        {
        case 10:
        case 9:printf("A\n");break;
        case 8:
        case 7:printf("B\n");break;
        case 6:printf("c\n");break;
        default:printf("D\n");
        }
        return 0;
}

练习:编写程序实现功能:读入两个整数(data1和data2)和一个运算符(op),计算表达式data1 opdata2 的值,其中op可以为+、-、*、/四个符号中的任种(用switch语句实现); 

int main(int argc, const char *argv[])
{
//获取数
    int data_a = 0, data_b = 0;
    char op = 0;
    int sum = 0;
    printf("please input num:\n");
    int ch = scanf("%d %c %d", &data_a,&op, &data_b);
// getchar();
    printf("ch = %d\n", ch);
    printf("get: %d%c%d\n",data_a, op,data_b);
    switch( op ){
    case '+':
        sum = data_a + data_b;
        printf("sum= %d\n", sum);
        break;
    case '-':
        sum = data_a - data_b;
        printf("sum= %d\n", sum);2.循环语句
        break;
    case '*':
        sum = data_a * data_b;
        printf("sum= %d\n", sum);
        break;
    case '/':
        sum = data_a / data_b;
        printf("sum= %d\n", sum);
        break;
    default:
        printf("not need!\n");
    //break;
    }
        return 0;
}

  • 21
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习嵌入式学习每一天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值