带你学C带你飞 | 分支结构 | if语句 | switch语句 | while语句 | do...while语句 | for语句 | break语句 | continue语句

一、if语句

1.if语句

  第一种if语句:如果怎样就怎样,其语法格式为:

......//其它语句
if(表达式)
{
   
	...//逻辑值为真所执行的语句、程序块
}
......//其它语句

举个栗子:

#include <stdio.h>

int main()
{
   
        int i;
        printf("您老贵庚:");
        scanf("%d",&i);

        if (i >= 18)
        {
   
                printf("你可真是那个!!!\n");
        }

        return 0;
}
[liujie@localhost sle11]$ gcc test.c && ./a.out
您老贵庚:26
你可真是那个!!!

  第二种if语句:如果怎样就怎样,否则,还能怎样。其语法格式为:

......//其它语句
if(表达式)
{
   
	......//逻辑值为真所执行的语句、程序块
)
else
{
   
	......//逻辑值为假所执行的语句、程序块
}
......//其它语句

举个栗子:

#include <stdio.h>

int main()
{
   
        int i;
        printf("您老贵庚:");
        scanf("%d",&i);

        if (i >= 18)
        {
   
                printf("你可真是那个!!!\n");
        }
        else
        {
   
                printf("那你也不行呀!!!\n");
        }
        return 0;
}
[liujie@localhost sle11]$ gcc test.c && ./a.out
您老贵庚:15
那你也不行呀!!!
[liujie@localhost sle11]$ gcc test.c && ./a.out
您老贵庚:26
你可真是那个!!!

  第3种if语句:它允许你扩充各种条件的判断,语法格式比较复杂。其语法格式为:

......//其它语句
if(表达式1){
   .. }
else if(表达式2){
   ......}
else if(表达式3){
   ......}
.
.
.
else if(表达式n){
   ...}
else {
   .......}
......//其它语句

举个栗子:按分数评级的程序

#include <stdio.h>

int main()
{
   
        int i;
        printf("你的数学成绩为");
        scanf("%d",&i);
        
        if (i >= 90){
   printf("A\n");}
        else if (i >= 80 && i < 90){
   printf("B\n");}
        else if (i >= 70 && i < 80){
   printf("C\n");}
        else if (i >= 60 && i < 70){
   printf("D\n");}
        else{
   printf("E\n");}
        return 0;
}
[liujie@localhost sle11]$ gcc test.c && ./a.out
你的数学成绩为80
B

2.if语句的课后作业

  1. 根据下边代码画出流程图,并说明该程序的用途。

    #include <stdio.h>
    
    int main()
    {
         
            int a, b, c, t;
    
            printf("请输入3个整数(使用空格隔开):");
            scanf("%d%d%d", &a, &b, &c);
    
            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;
    }
    

    答:该程序将用户输入的 3 个整数从小到大排列后输出。
    解析:要将变量 a 和变量 b 的值互换,这里借用一个中间变量 t 来实现。第一次条件判断,如果 a > b,将两变量的值互换,确保 a <= b。同样道理,下边经过两次判断,确保 a <= c 以及 b = c。因此,最后得到的结果是 a <= b <= c,实现了从小到大排序。
    流程图:
    在这里插入图片描述

  2. 要求用户输入一个字符,如果是大写字母,将其转换为小写;如果是小写字母,将其转换为大写;其他字符不做处理,并输出结果。
    答:仔细观察 ASCII 码表不难发现:大写字母要比对应的小写字母的 ASCII 值小 32(十进制)。

    #include <stdio.h>
    
    int main()
    {
         
            char ch;
    
            printf("请输入一个字符:");
            scanf("%c", &ch);
    
            if (ch >= 'A' && ch <= 'Z')
            {
         
                    ch = ch + 32; // ch加32,变成小写,然后赋值回ch
            }
            else if (ch >= 'a' && ch <= 'z')
            {
         
                    ch = ch - 32; // 同上
            }
    
            printf("%c\n", ch);
    
            return 0;
    }
    

二、switch语句和分支嵌套

1.switch语句

  switch语句的语法格式为:

......//其它语句
switch(表达式)
{
   
	case 常量表达式1:语句或程序块1
	case 常量表达式2:语句或程序块2
	......
	case 常量表达式n:语句或程序块n
	default:语句或程序块n+1
}
......//其它语句

得到的表达式是某一个常量,如果其匹配某个常量表达式,那么,switch语句就会直接执行其对应的语句或程序块。否则,就会执行default后面的语句或程序块。
举个栗子:通过评级来反推出成绩范围

#include <stdio.h>

int main()
{
   
        char i;
        printf("请输入成绩:");
        scanf("%c",&i);

        switch (i)
        {
   
                case 'A' : printf("你的成绩在90分以上\n");break;
                case 'B' : printf("你的成绩在80分到90分区间\n");break;
                case 'C' : printf("你的成绩在70分到80分区间\n");break;
                case 'D' : printf("你的成绩在60分到70分区间\n");break;
                case 'E' : printf("你的成绩在60分以下\n");break;
                default : printf("请输入有效的成绩评级\n");
        }

        return 0;
} 
[liujie@localhost sle12]$ gcc test.c && ./a.out
请输入成绩:A
你的成绩在90分以上

2.分支嵌套

  分支嵌套就是分支结构里面嵌套分支结构。其语法格式如下:

if(表达式)
	if(表达式)
		......
	else
		......
else
	if(表达式)
		......
	else
		......

举个栗子:根据流程图来写代码
在这里插入图片描述

#include <stdio.h>

int main
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值