IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言中的分支语句 | if-else语句和switch语句 -> 正文阅读

[C++知识库]C语言中的分支语句 | if-else语句和switch语句

写在前面:

C语言是结构化程序设计语言,无非就包含以下三种结构:

  • 顺序结构
  • 选择结构
  • 循环结构

除了这三种再没有其它的了,再要么就是互相嵌套.比如说循环里面有选择等等

而我们接下来要学习的就是分支语句和循环语句:

分支语句:

  • if语句
  • switch语句

循环语句:

  • while循环
  • for循环
  • do while 循环
  • go to循环

循环语句将在下一篇博客进行讲解,敬请期待....

首先究竟是什么的形式才可以称之为语句呢?

形如 printf("bit");   
     1+2;
的语句,在C语言中由一个分号隔开的就是一条语句

分支语句(选择结构)

选择困难可能是很大一部分人比较头疼的一件事,但是在日常的生活中处处都离不开选择.比如:早上几点起,去不去上课,上完课干什么饭.......都是选择.选择不仅仅体现在生活当中,在代码中体现的也是淋漓尽致,下面就让我们好好学习吧.

一.if语句

if语句的三种格式:

if(表达式){
    语句;
}

if(表达式){
    语句1;
}else{
    语句2;
}


if(表达式){
    语句1;
}else if(表达式){
    语句2;
}else{
    语句3;
}

以第二种常用的形式解释一下:

如果表达式中的结果为真,则执行语句1,否则执行语句2. 有这么一句话是这样说的:世界上最远的距离就是,你在if语句,而我在else语句.

而又有很多同学会问到C语言中如何表示真假,什么情况下是真,什么情况下是假呢?这里我觉得很有必要去解释一下.

0表示假,非0表示真.

写一个简单的例子体验一下:

if(a == 1){
    printf("haha\n");
}else{
    printf("hehe\n");
}

代码解释:当a的值等于1时则打印haha,否则打印hehe. 注意判断是否相等的时候需要使用双等于号,即==.

但是在刚学习C语言或者或者分支语句的时候,好多同学都不习惯带{}.这里的{}表示的是一个代码块.于是就会出现各种问题,和自己所想要的代码逻辑所违背.下面就写一个悬空else语句的例子.

if(a == 0)
    if(b == 2)
        printf("haha\n");
else
    printf("hehe\n");

?写下这么一段代码,其本身的逻辑应该是a == 0 且 b == 2时打印haha,a != 0则打印hehe的.

但是运行结果显然是没有任何输出的,是因为else语句遵循最近匹配原则,其真正的代码逻辑是这样的:

如果想要实现我们本身的逻辑,就应该加上{}.

?

除了上面这种情况,很多同学还会出现这样一种错误:写if-else语句时,包含多条语句时不加{}最终导致出现不可预见的错误.

int main() {
	int a = 0, b = 2;
	if (a == 1)
		printf("hahaha\n");
		printf("hahaha\n");
	else
		printf("hehehe\n");
		printf("hehehe\n");
	return 0;
}

其实这段代码本身的逻辑应该是:如果a==1则打印两行hahaha,否则打印两行hehehe.

但是在实际的代码运行中就会出错.

?由此可见,在写代码时{}最好都不要省略,避免出现一些不可预见的错误.

良好的代码风格同样是非常重要的,好的代码不是写的多么高端,而是具有很高的可读性,而不是只有自己可以很好的读懂.

二.switch语句

switch语句也是一种分支语句,常常用于多分支的情况.

switch语句的格式:

switch(整形表达式){
    语句项;
}

语句项则是一些case语句,如下:
case 整形常量表达式:
    语句;

需要注意的是:整形表达式整形常量表达式.

整形表达式:必须是一个整形,字符或枚举类型.不能是浮点数或其它类型.

整形常量表达式:数据类型必须与整形表达式相同,且必须是常量或字面量.

switch语句中的break:在switch语句中,我们没法直接实现分支,搭配break使用才能实现真正的分支.

典型的一个例子就是:

	int input = 0;
	scanf_s("%d", &input);
	switch (input) {
	case 1:
		printf("星期一\n");
		break;
	case 2:
		printf("星期二\n");
		break;
	case 6:
	case 7:
		printf("周末\n");
		break;
	default:
		printf("输入错误\n");
		break;
	}

break语句的实际效果就是把语句列表划分为不同的部分.

default字句其实就是相当于if-else语句中的else字句,但是它可以出现在语句列表的任何位置,但一般都是在最末尾.

编程好习惯:

  1. 在每一个case语句最好都加上break语句
  2. 在每一个switch语句中都放一条default语句,并且在后面再加上一个break语句.

而在平时我们使用switch语句时却会出现各种不可预见的错误,我们举几个比较典型的例子分析一下.

(1).case关键字与常量之间没有空格

(2).缺少break语句

?上面的两个例子,我们可以得知: 如果case字句中没有break语句,则不跳出switch语句,而是继续向下运行,直至遇到break语句,或者执行完所有的case语句.

(3).switch语句嵌套缺少break语句

由此可以得知,嵌套的switch语句中的break只能跳出里面的switch,而继续执行外面的switch语句.?

?勤奋是你生命密码,能译出你一部壮丽史诗.加油,新生代农民工!

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-02 16:34:44  更:2021-12-02 16:36:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:15:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码