C语言的过程中必不可少的就是选择,日常生活中面临的选择就很多,比如去上学的路线,
是自学还是跟着老师系统的学习都是一个选择 的情况。
C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实 现这三种结构的, 今天我们谈的是选择结构
首先就是常见的if语句
if语句:
#include<stdio.h>int main(){if() { }return 0;}C语言中:非0即为真

//判断一个整型数字是否为奇数
示例:
#include <stdio.h>int main(){int num = 0;scanf("%d", &num);if(num % 2 == 1)return 0;}当然只有一种判断是远远不够的,想要丰富我们的选择结构就需要用到我们的 if else
语句了。
if else
#include<stdio.h>int main(){if() { }else { }return 0;}判断一个整型的数字不是奇数那就是偶数了
#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 语句连⽤,构成多重判断。
#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 改成更易⽤、可读性更好的形式
#include<stdio.h>int main(){switch (expression){case value1: statementcase value2: statement...default: statement}return 0;}上⾯代码中,根据表达式 就执⾏ expression 不同的值,执⾏相应的 default 分⽀。 case 分⽀。如果找不到对应的值,就执行default后面的语句
注意: sw itch 后的必须是整型表达式 case 后的值,必须是整形常量表达式
例如:计算一个数字的除以3后的一个余数
#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 ⼦句。
#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 删除。