C语言的分支语句

简介: 开头先举个例子,人生有许多选择。好好学习编程将来挣大钱,或者不好好学习将来烤牛筋。这就是选择,人生处处是选择。那c语言中有什么选择呢?

     开头先举个例子,人生有许多选择。好好学习编程将来挣大钱,或者不好好学习将来烤牛筋。这就是选择,人生处处是选择。那c语言中有什么选择呢?


if语句


语法结构:


if(表达式)
    语句;
//多分支
if(表达式1)
    语句1;
else if(表达式2)
    语句2;
else
    语句3;


       这就是if语句的基本结构,其中表达式可以是表达式语句、函数调用语句,空语句。而里面包含的语句就是如果表达式成立的情况下执行的语句。


       举个最简单的例子:如果用成绩好坏来决定标准,标准为60分以下为差,60—80分为良,80分以上为优,则可以写出以下代码评判一个人。


#include<stdio.h>
int main(void)
{
    int a = 0;//a为一个人的成绩
    scanf("%d", &a);
    if(a < 60)
        printf("差\n");
    else if(a >= 60 && a <= 80)
        printf("良\n");
    else
        printf("有\n");
    return 0;
}

5f09d2832d4e469aa351682155950dd6.png


       如果全部写if在这个问题上也是可以的,只不过每一个条件都要进行判断,增大了计算机的计算量,使计算变慢。


       if语句也可以进行嵌套,使成立条件变得更加苛刻更加细致。但是if和else的匹配加上嵌套后就会有一点偏差和误解,所以为了代码的可读性应该在if和else上加上{}是块更加明显。举个例子来说


#include<stdio.h>
int main(void)
{
    int a = 0;
    int b = 1;
    if(a == 1)
        if(b == 1)
            printf("666\n");
        else
            printf("888\n");
    return 0;
}

63a448cd2f1645aa88599bc53339a719.png


       这个问题就出在if和else关系不明确,导致对组合的判断失误,结果什么都没有打出来 。这个代码中else是和if(b == 1)这个匹配的,所以导致第一个if判断不成功后直接结束程序。(在没有{}的加持下,else是和最近的if配对的)


#include<stdio.h>
int main(void)
{
    int a = 0;
    int b = 1;
    if(a == 1)
    {
        if(b == 1)
            printf("666\n");
    }
    else
            printf("888\n");
    return 0;
}   


46fa35a9e24340ceb0e3fb66dd6420ed.png


        这个才是我们想要的结果!!!


switch语句


语法结构:


switch(整形表达式)
{ 
    case 常量表达式1:  语句1;
    case 常量表达式2:  语句2;
    case 常量表达式n:  语句n;
    default:  语句n+1;
}


       switch语句和if不同,if语句在执行完后会跳出去,不会执行其他语句,但是switch语句在执行完一种选择后会继续往下执行,所以在这里应该引出break关键词(break一般在循环语句中和switch语句中经常用到,作用是跳出正在执行的任务)


       如果在一个程序中没有用到break时,有很大的几率会将不正确的答案依次显示在屏幕上。


#include<stdio.h>
int main(void)
{
   int day = 0;
   scanf("%d", &day);
   switch(day)
   {
      case 1:
        printf("星期一\n");
    case 2:
        printf("星期二\n");
      case 3:
        printf("星期三\n");
      case 4:
        printf("星期四\n");
      case 5:
        printf("星期五\n");
      case 6:
        printf("星期六\n");
    default:
      printf("星期天\n");
   }
    return 0;
}   

301af01ce7a94997a54de04c8304b35a.png


这就是没有break的后果!!!


default和else的作用大同小异。


switch语句也允许嵌套使用。

目录
相关文章
|
4月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
94 5
|
4月前
|
C语言
【c语言】分支语句
C语言通过三种基本结构——顺序、选择和循环,构建复杂的程序逻辑。本文主要介绍了C语言的选择结构,即if-else语句及其变体,包括简单的if语句、if-else组合、else if多分支判断、嵌套if以及解决悬空else问题的方法。此外,还详细讲解了逻辑运算符和关系运算符的使用,以及如何利用条件操作符简化逻辑判断。最后,文章对比了if-else与switch语句在实现多分支逻辑时的应用,并解释了switch语句中的break和default关键字的作用。
54 8
|
9月前
|
C语言 数据安全/隐私保护
C语言初阶②(分支语句和循环语句)编程练习
C语言初阶②(分支语句和循环语句)编程练习
78 1
|
8月前
|
C语言
【C语言基础】:分支与循环
【C语言基础】:分支与循环
|
4月前
|
Serverless C语言
C语言控制语句:分支、循环和转向
C语言控制语句:分支、循环和转向
|
4月前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
|
4月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
27 0
|
4月前
|
程序员 C语言
【C语言】分支语句(逻辑运算符与关系运算符)
【C语言】分支语句(逻辑运算符与关系运算符)
114 0
|
6月前
|
C语言
【C语言篇】分支语句详解(超详细)
在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要顺序是满⾜实际需求的就可以。 不过我们通常是把 default ⼦句放在最后处理的。
80 2
|
6月前
|
C语言
C语言分支语句
C语言分支语句
46 4