当前位置:网站首页>从零开始的循环之旅(上)
从零开始的循环之旅(上)
2022-08-02 14:19:00 【随风的浪】
选择(分支)结构
总述
在我们日常生活中处处都面临着选择,每个选择都会或多或少的影响我们的未来。C语言中便有两种选择结构来实现选择,它们是 if els / switch case ,下面我们就来介绍一下吧。
1、分支语句
1.1、if语句
if语句的语法结构:
if(表达式)
语句;
if(表达式)
语句1;
else
语句2;
if(表达式1) //多个分支
语句1;
else if(表达式2)
语句2;
else
语句3;
如果表达式中的语句为真,则语句执行。
那么我们如何判断语句是否为真呢?
在C语言中,0表示假,非零表示真。
我们来看看代码:
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("未成年\n");
}
else if(age>=18 && age<45)
{
printf("壮年\n");
}
else if(age>=45 && age<59)
{
printf("中年/n");
}
else
printf("老年\n");
return 0;
}
提示:如果条件成立,要执行多条语句就需要使用代码块,即{ };如果条件成立,若只需执行一条则可不加。
下面我们来看一个有趣的代码:
#include <stdio.h>
int main()
{
//大家猜猜看这个代码得到的结果是什么
int a = 0;
int b = 2;
if(a == 1)
if(b == 2)
{
printf("hehe\n");
}
else
{
printf("haha\n");
}
return 0;
}
相信大家都有答案了吧,其实结果啥也不打印,为啥呢?
因为 else 是和它离的最近的 if 匹配的。
所以 else 其实是与下面的 if 匹配,而 a= 0 ,所以 a==1 为假,说以程序进不去,也就无法完成下面的 if else 了。这就是我们所说的悬空 else。
当然了,我们也可以加代码块来使 else 与上面的 if 对齐。
1.2、switch 语句
switch 语句也是一种分支语句,常常用于多分支的情况。
switch(整型表达式)
{
语句项;
}
这就是一个简单的 switch 语句。
下面我们来看一段代码:
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d",day);
switch(day) //根据day的值来执行语句
{
case 1:
printf("星期一\n");
break; //break;是为了退出switch语句
case 2: //如果没有break;则程序往下走,执行下一条语句
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break; //default 就像if else 里的 else
default: //当day不等于1~7时,程序进入default
printf("请输入有效星期(1~7)\n")
break;
}
return 0;
}
break 语句的实际效果是把语句列表划分为不同的分支部分。
在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break 。
总结
当碰到的选择较少时,优先使用 if else
当碰到多种选择,且需控制语句表达时,便使用 switch
注
本文为个人见解,如有误导,还请见谅。
边栏推荐
猜你喜欢

IIR滤波器设计之冲激响应不变法与双线性变换法

idea使用jdbc对数据库进行增删改查,以及使用懒汉方式实现单例模式

Based on the SVM regression forecast 】 【 LibSVM realize the prediction of a characteristic data

Golang学习(三十五) go 连接redis

解决启动filebeat时遇到Exiting: error unpacking config data: more than one namespace configured accessing错误

炒鸡好用的音乐平台(插件)

Vmware workstation16 安装 ESXi 6.7 详细步骤

虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本。模块“Upgrade”启动失败。未能启动虚拟机。

mongodb连接本地服务失败的问题

MATLAB文件操作
随机推荐
appium 报错:AttributeError:
test3
nvm详细安装步骤以及使用(window10系统)
web渗透之文件上传漏洞
WebRTC 中有关 Media Stream & Track & Channel 之间的关系
Principles of permutation entropy, fuzzy entropy, approximate entropy, sample entropy and approximate entropy implemented by MATLAB
Mysql理解MVCC与BufferPool缓存机制
虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本。模块“Upgrade”启动失败。未能启动虚拟机。
synchronized详解
tab 替换空格
网络运维系列:GoDaddy Shell DDNS配置
Golang学习(三十五) go 连接redis
DOM - Event Object
二、QT界面开发--新建C语言工程
【网络参考模型】
基于Visual Studio 2015的CUDA编程(一):基本配置
Mysql索引优化二
网络运维系列:Ubnt ER-X初始化和开启硬件NAT
在命令行或者pycharm安装库时出现:ModuleNotFoundError: No module named ‘pip‘ 解决方法
Mysql开启日志并按天进行分割