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语句也允许嵌套使用。

目录
相关文章
|
8天前
|
C语言
C语言之分支结构
C语言之分支结构
24 0
|
8天前
|
Go C语言
爱上C语言:分支与循环(循环篇)
爱上C语言:分支与循环(循环篇)
|
8天前
|
C语言
爱上C语言:分支与循环(分支篇)多个if与if — else if区别
爱上C语言:分支与循环(分支篇)多个if与if — else if区别
|
8天前
|
程序员 编译器 C语言
C语言第五弹---分支语句(上)
C语言第五弹---分支语句(上)
|
8天前
|
C语言
介绍c语言中的分支,循环
介绍c语言中的分支,循环
26 0
|
3天前
|
C语言 数据安全/隐私保护
C语言初阶②(分支语句和循环语句)编程练习
C语言初阶②(分支语句和循环语句)编程练习
11 1
|
3天前
|
C语言
C语言——分支,循环语句
C语言——分支,循环语句
8 0
|
3天前
|
C语言 数据安全/隐私保护
C语言初阶①(分支语句和循环语句)知识点(下)
C语言初阶①(分支语句和循环语句)知识点
9 1
|
3天前
|
编译器 C语言
C语言初阶①(分支语句和循环语句)知识点(上)
C语言初阶①(分支语句和循环语句)知识点
15 0
|
6天前
|
C语言
C语言——入门分支与循环
C语言——入门分支与循环
7 0