07-C语言流程控制if、switch

目录:

一、流程控制 条件分支 if else

二、流程控制 开关分支 switch

回到顶部

一、流程控制 条件分支

1.语法格式:if(表达式1){

         //表达式1为真(非0时),执行的语句部分。

         //代码块由一条件或多条语句组成

}else if(){

         //表达式1为0为假,执行的语句部分。

}else{

         //以上条件补满足是,执行的语句部分。

}

2.在一个完整的if语句中至少要有一个if,elseif可以出现0~n次,else可以出现0~1次。

3.if else语句应用与需要根据不同条件执行代码的场合。

4.if else 语句最多只能执行一个分支,有else分支,必须选择其一执行,无else分支,可以选择其一执行,也可能不执行。

5.如果{}中仅有一条语句,可以省略{},不推荐。

练习:输入一个成绩,得到评价,>90,优;<60,不及格;其他,一般。

1)在键盘上输入一个字母,将小写转换为大写,如果是大写就原样输出。

#include <stdio.h>
//在键盘上输入一个字母,将小写转换为大写,如果是大写就原样输出。
int main()
{
    char ch;
    printf("请输入一个字母:
");
    scanf("%c",&ch);
    if (ch >= 'a' && ch <= 'z') {
        printf("转换为大写:%c
",ch -('a'-'A'));
    }else{
        printf("大写:%c
",ch);
    }
    return 0;
}

2)输入一个成绩,0~100之间的整数,根据分数得到相应的级别,100~90优90~80良80~60中60~0不及格

3)准备回家,交通工具,输入工资,小于1300,则显示输入错误,大于10000坐飞机,大于5000坐火车,大于3000坐汽车,大于1500骑自行车,都不满足步行。

4)优化第二题,优A良B中C不及格D,根据分数级别,判断分数范围。

5)判断闰年,平年2月份29天,闰年2月份29天,条件:a,年份可以同时整除4且不能整除100;b,整除400,满足其一就是闰年。输入一个年份判断是否是闰年。

6)输入年、月,求某月有多少天,一共有28,29,30,31几种。

7)输入年,求该年的总天数,365、366

  1 #include <stdio.h>
  2 //输入一个成绩,0~100之间的整数,根据分数得到相应的级别,100~90优90~80良80~60中60~0不及格
  3 void test()
  4 {
  5     int i;
  6     printf("输入一个成绩:
");
  7     scanf("%d",&i);
  8     if (i >= 90 && i <= 100) {
  9         printf("");
 10     }else if(i >= 80 && i < 90){
 11         printf("");
 12     }else if(i >= 60 && i < 80){
 13         printf("");
 14     }else if(i >= 0 && i < 60){
 15         printf("不及格
");
 16     }else{
 17         printf("无效
");
 18     }
 19 }
 20 //3)准备回家,交通工具,输入工资,小于1300,则显示输入错误,大于10000坐飞机,大于5000坐火车,大于3000坐汽车,大于1500骑自行车,都不满足步行。
 21 void test2()
 22 {
 23     int salary;
 24     printf("输入工资:
");
 25     scanf("%d",&salary);
 26     if (salary >= 10000) {
 27         printf("坐飞机回家
");
 28     }else if (salary >= 5000){
 29         printf("坐火车回家
");
 30     }else if (salary >= 3000){
 31         printf("坐汽车回家
");
 32     }else if (salary >= 1500){
 33         printf("骑车回家
");
 34     }else if (salary >= 1300){
 35         printf("步行回家
");
 36     }else{
 37         printf("输入错误
");
 38     }
 39 }
 40 /*
 41  输入分数级别ABCD
 42 优(90-100)A
 43 良(80-90)B
 44 中(60-80)C
 45 不及格(0-60)D,
 46 根据分数级别,判断分数范围。
 47 */
 48 void test3()
 49 {
 50     char fj;
 51     printf("输入分数级别:
");
 52     scanf("%c",&fj);
 53     if(fj == 'A' || fj == 'a'){
 54         printf("您的分数范围在90~100间
");
 55     }else if(fj == 'B' || fj == 'b'){
 56         printf("您的分数范围在80~90间
");
 57     }else if(fj == 'C' || fj == 'c'){
 58         printf("您的分数范围在60~80间
");
 59     }else if(fj == 'D' || fj == 'd'){
 60         printf("您的分数范围在0~60间
");
 61     }else{
 62         printf("输入数据无效");
 63     }
 64 }
 65 //判断闰年,平年2月份29天,闰年2月份29天,条件:a,年份可以同时整除4且不能整除100;b,整除400,满足其一就是闰年。输入一个年份判断是否是闰年。
 66 void test4()
 67 {
 68     int year;
 69     printf("输入一个年份:
");
 70     scanf("%d",&year);
 71     if((year % 4 == 0 && year % 100 !=0) || year % 400 == 0){
 72         printf("该年是闰年
");
 73     }else{
 74         printf("该年是平年
");
 75     }
 76 }
 77 //输入年、月,求某月有多少天,一共有28,29,30,31几种。
 78 void test5()
 79 {
 80     int year;
 81     int month;
 82     printf("请输入年、月
");
 83     scanf("%d%d",&year,&month);
 84     if(month == 2){
 85         /*if((year % 4 == 0 && year % 100 !=0) || year % 400 == 0){
 86             printf("%d是闰年,%d月有29天
",year,month);
 87         }else{
 88             printf("%d是平年,%d月有28天
",year,month);
 89         }*/
 90         printf("%d年,%d月有%d天
",year,month,28 + (year % 4 == 0 && year % 100 !=0 || year % 400 == 0));
 91     }else if(month == 4 || month == 6 || month == 9 || month == 11){
 92         if((year % 4 == 0 && year % 100 !=0) || year % 400 == 0){
 93             printf("%d是闰年,%d月有30天
",year,month);
 94         }else{
 95             printf("%d是平年,%d月有30天
",year,month);
 96         }
 97     }else{
 98         if((year % 4 == 0 && year % 100 !=0) || year % 400 == 0){
 99             printf("%d是闰年,%d月有31天
",year,month);
100         }else{
101             printf("%d是平年,%d月有31天
",year,month);
102         }
103     }
104 }
105 //输入年,求该年的总天数,365、366
106 void test6()
107 {
108     int year;
109     printf("输入年份:
");
110     scanf("%d",&year);
111     /*if((year % 4 == 0 && year % 100 !=0) || year % 400 == 0){
112         printf("%d年是闰年,总天数366天
",year);
113     }else{
114         printf("该年是平年,总天数365天
",year);
115      }*/
116     printf("%d年,有%d天
",year,365 + (year % 4 == 0 && year % 100 !=0 || year % 400 == 0));
117 }
118 int main()
119 {
120     //test();
121     //test2();
122     //test3();
123     //test4();
124     //test5();
125     test6();
126     return 0;
127 }

作业:

1)输入四个数,求出四个数中的最大数、最小值、和

回到顶部

二、流程控制 开关分支(选择分支switch)

1.语法规则:switch(控制表达式){

         case 常量表达式1:

         语句;

         break;

         case 常量表达式2:

         语句;

         break;

 

         ……

         default:

         语句;

}

2. break关键字,终止switch代码块的执行。

3.控制表达式当做整型数据处理,也可以是字符型数据处理,但不能是浮点数和字符串。常量表达式必须是常量(常量和字符),不允许重复。

4.default语句,不一定在最后一行。

#include <stdio.h>

int main()
{
    int i =1;
    char ch = 'a';
    /*switch (i){
        case 1:
            printf("一
");
            break;
        case 2:
            printf("二
");
            break;
        default:
            printf("有误
");
    }*/
    switch (ch){
        case 'a':
            printf("1
");
            break;
        case 'b':
            printf("2
");
            break;
        default:
            printf("有误
");
    }
    return 0;
}

作业:

(使用switch写)输入一个成绩,0~100之间的整数,根据分数得到相应的级别,100~90优(A)90~80良(B)80~60中(C)60~0不及格(D),根据分数级别,判断分数范围。   

#include <stdio.h>

int main()
{
    char j;
    printf("输入分数级别:
");
    scanf("%c",&j);
    switch (j){
        case 'A':
            printf("范围在90-100
");
            break;
        case 'B':
            printf("范围在80-90
");
            break;
        case 'C':
            printf("范围在60-80
");
            break;
        default:
            printf("范围在0-60
");
    }
    return 0;
}
原文地址:https://www.cnblogs.com/yangmx/p/3460549.html