首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >C语言、选择结构

C语言、选择结构

原创
作者头像
xieliyu
发布于 2026-09-20 21:44:56
发布于 2026-09-20 21:44:56
1270
举报
文章被收录于专栏:C语言C语言

        C语言的过程中必不可少的就是选择,日常生活中面临的选择就很多,比如去上学的路线,

是自学还是跟着老师系统的学习都是一个选择 的情况。

        C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实 现这三种结构的,  今天我们谈的是选择结构  

        首先就是常见的if语句

if语句:

代码语言:cpp
复制
#include<stdio.h>int main(){if()    {     }return 0;}

C语言中:非0即为真

//判断一个整型数字是否为奇数

示例:

代码语言:cpp
复制
#include <stdio.h>int main(){int num = 0;scanf("%d", &num);if(num % 2 == 1)return 0;}

        当然只有一种判断是远远不够的,想要丰富我们的选择结构就需要用到我们的 if   else 

语句了。

if   else 

代码语言:cpp
复制
#include<stdio.h>int main(){if()    {    }else    {    }return 0;}

判断一个整型的数字不是奇数那就是偶数了

代码语言:cpp
复制
#include <stdio.h>int main(){int num = 0;scanf("%d", &num);if(num % 2 == 1)printf("%d 是奇数\n", num);elseprintf("%d 是偶数\n", num)return 0;}

当然新手写代码的时候可以在if 和else的后面加上花括号这让会更加清楚

C语言中默认在 if 和 else 语句中默认都只控制⼀条语句加上花括号就可以控制多条语句

嵌套if

       if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断。

代码语言:cpp
复制
#include<stdio.h>int main(){    int num = 0;scanf("%d", &num);if(num == 0)printf("输⼊的数字是0\n");else if(num > 0)printf"输⼊的数字是正数\n");else printf("输入的数字是负数\n");return 0;}

注意:如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。!!!

以上就是嵌套if语句的语法,有了嵌套if语句,就可以完成更多复杂逻辑的判断。

switch 语句

        除了 if 语句外,C语⾔还提供了 switch 语句来实现分⽀结构。 switch 语句是⼀种特殊形式的 if...else 结构,⽤于判断条件有多个结果的情况。它把多重的 else if 改成更易⽤、可读性更好的形式 

代码语言:cpp
复制
#include<stdio.h>int main(){switch (expression){case value1: statementcase value2: statement...default: statement}return 0;}

上⾯代码中,根据表达式 就执⾏ expression 不同的值,执⾏相应的 default 分⽀。 case 分⽀。如果找不到对应的值,就执行default后面的语句

注意:        sw itch 后的必须是整型表达式        case 后的值,必须是整形常量表达式

例如:计算一个数字的除以3后的一个余数

代码语言:cpp
复制
#include <stdio.h>int main(){int n = 0;scanf("%d", &n);switch(n % 3){case 0:printf("整除,余数为0\n");  break;case 1:printf("余数是1\n");       break;case 2:printf("余数是2\n");       break;}return 0;}

上述的代码中,我们要注意的点有: 1. case 和后边的数字之间必须有空格 2. 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个 switch 语句

如果没有加break语句会发生什么呢?

编译器会输出:

 7

余数是:1

余数是:2

通过计算我们可以知道7除以3的余数为1。

为什么会出现这种情况?

原因就是没有加break

        原因是 switch 语句也是分⽀效果的,只有在句,如果某⼀个 case 语句的后边没有break 语句,代码会继续往下执⾏,有可能执⾏其他 2 中的语句。 所以在 break 语句或者 switch 语句结束。就⽐如上⾯的代码就执⾏了 switch 语句中 break 语句是⾮常重要的。

        当然也不是每个case语句后面都需要,根据实际情况来定。

switch语句中的default

        在使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,⽐如 switch 后的表达式中的值⽆法匹 配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加⼊default ⼦句。

代码语言:cpp
复制
#include<stdio.h>int main(){ switch (expression)     {case value1: statementcase value2: statementdefault: statement    }return 0;}

        当选择的结果不是value1和value2的时候就执行default里面的表达式。

        那么default有没有顺序要求呢?

        答案是:没有

         在switch中case和default语句没有顺序要求,哪一个在前或者在后都行。

         不过我们通常是把default ⼦句放在最后处理的。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档