C语言教程(五):选择结构
参考:
- 《标准C语言基础教程》(第四版)[美] Gary J.Bronson 著 张永健 等译
1. 本文概述
不知道大家有没有听过这个笑话,“程序员老王出门买菜,他的老婆说,出门买两个西红柿,如果碰见西瓜就买一个。结果老王看到了西瓜,但只买了一个西红柿。”是不是很好笑!好吧,不好笑。
但是为什么会出现这个情况呢,都知道他老婆的意思是买两个西红柿和一个西瓜。接下来我就为大家解释解释这老王的行为逻辑。这涉及到了选择结构。
2. 老王的逻辑思路
作为一个合格的程序员,老王以身践行了计算机的逻辑。接下来我们来了解一下C语言如果运行老王的老婆的话,会产生什么结果~
大家有没有看明白这个思维呢~没错没错,C语言的选择结构差不多就是这样。
3. if条件语句
首先带着大家看一看最最最基础的选择结构:
//注意if这行没有分号!!!
if(条件)条件为真时的执行的语句;
先来举个例子,然后再往下说:
//要求:输出变量a比变量b小,输出a,假设a为5,b为10。//核心代码如下:
int a = 5;
int b = 10;
if(a < b)printf("a比b小,a=%d",a);//输出结果:
a比b小,a=5
那啥算条件啊,接下来写几个常见的关系运算符:
敲黑板!注意!判断两个变量相等一定要用==
,否则逻辑上是错误的!
大于小于多常见啊,你咋不写呢!写!来我们看逻辑运算符!
大家注意下,||
不是两个小写字母“L”,大家可以看一下键盘enter键上方的那个按键,具体怎么摁出来我就不讲了。
有的人问了,咦,你说的大于小于呢?来了来了,大于小于不就是大于一个东西并且小于一个东西嘛,简单,假如:a大于2,小于6
,代码这么写(a>2) && (a<8)
,千万不要写成2<a<8
,电脑可看不懂这个式子!
4. 条件什么时候为真
我们说了这么久条件有哪些,那啥时候条件为真,什么时候为假呢?
当然简单的我就不说了,像什么a=8
,那么a<10
一定是真的,很简单。
下面我来说说涉及到AND、OR、NOT的判断方式,见下表:
4.1 AND运算符
4.2 OR运算符
4.3 NOT运算符
5. if…else语句
惯例,首先带着大家看一看if...else
的使用方法:
//注意if和else两行都没有分号!!!
if(条件)条件为真时的执行的语句;
else条件不为真时执行的语句;
下面我将最开始说的那个“笑话”用这个语句表示出来(指定运行不了):
int tomato;
if(看见西瓜)tomato=1;
elsetomato=2;
printf("买了%d个西红柿",tomato);
又有同学想问,我每次只能写一条语句吗?都写点不行吗?
行啊!当然可以!只是要加一对可爱的大括号{}
,操作如下!
//注意if和else两行都没有分号!!!
//下列两个格式的写法表达的意思完全一样!
//格式1:
if(条件)
{条件为真时的执行的语句块;
} //这里没有分号!!!
else
{条件不为真时执行的语句块;
} //这里没有分号!!!//格式2:
if(条件){条件为真时的执行的语句块;
}else{条件不为真时执行的语句块;
} //这里没有分号!!!
{}
大括号表示语句块,可以简单理解为{}
为一条语句。
6. if…else if语句(if…else链)
惯例,首先带着大家看一看if...else if
的使用方法:
//注意if和else两行都没有分号!!!
if(条件1)
{条件1为真时的执行的语句块;
} //这里没有分号!!!
else if(条件2)
{条件2为真时的执行的语句块;
} //这里没有分号!!!
else
{条件不为真时执行的语句块;
} //这里没有分号!!!
这玩意有啥用?我多用几个if
不也行吗?
嘿嘿嘿,可以!就是if
慢!那为啥慢呢?其实原因很简单,就是用多个if
判断的次数比if...else if
要多,if...else if
如果条件1不符合,就会抛出条件1的范围,转而判断条件2,如果条件2也不符合,就会抛出条件2的范围,判断条件3,以此类推,指导条件n符合,或者完全没有符合的条件。
7. switch语句
惯例,首先带着大家看一看switch
的使用方法:
switch(整型表达式)
{case 数值1:语句1;语句2;...break;case 数值2:语句x;语句y;...break;...case 数值n:语句w;语句x;...break;//default这种情况可以没有,如果有的话,表达的意思是整型表达式不等于以上数值default: 语句r;语句t;
} //这里没有分号!!!
大家注意看,这里和前面讲的两种语句有些许不同,但本质上来讲功能是一样,需要注意的就是,这里的case
后面是整型数值,然后是英文冒号,接下来大家可以自由发挥,直到看见break
,break
表示我这个case
里的多条语句结束,如果没有break
的话,你会发现他会继续执行下一个case
的语句,以此类推,直到碰到break
或者switch
结束。
8. 结语
大家觉得if...else if
的最后一段无法理解,没关系,大家可以通过尝试这次的练习理解我在说什么。那么,大家回去尝试一下如果一家银行的利息表如下:
尝试写出这家银行的利息运算系统~
好啦,又到了告别的时间,如果以上说法有错误,希望大家可以在评论区及时订正,有问题也欢迎大家在评论区里提问,我会尽我所能帮助大家解决问题~
C语言教程(五):选择结构相关推荐
- C语言输入输出及选择结构程序设计的综合应用——简单超级战士游戏and 取牙签游戏
最全C系列题目!从0到管理系统 一.C语言数据类型及输出--体重是否正常.球的体积.计算存银行利息and浮点数长度与精度 二.C语言运算符与表达式--输出逆序数and二进制包含0和1的数量and判断是 ...
- c语言用if语句abc输出最大值,C语言基础入门选择结构-if语句(78页)-原创力文档...
C语言基础入门选择结构-if语句_电脑基础知识_IT/计算机_专业资料.第9单元选择结构-if语句<程序设计基础>北京八维研修学院第1节选择结构导入?... <程序设计基础> ...
- C语言中 用选择结构编译算法,C语言程序设计立体化教程(高等教育立体化精品系列规划教材)...
导语 内容提要 李刚.唐炜主编的<C语言程序设计立体化教程(高等教育立体化精品系列规划教材)>主要分为四篇:语法基础篇.程序设计结构篇.初级应用篇和高级应用篇:其中第一篇语法基础部分介绍了 ...
- C语言作业二选择结构,C语言第二次作业参考答案选择结构.pdf
1 C 语言第二次作业(选择结构)参考答案语言第二次作业(选择结构)参考答案 1.某年如果能被某年如果能被 4 整除整除,,但不能被但不能被 100 整除整除,,或者能被或者能被 400 整除的整除的 ...
- Java教程:Java选择结构和循环结构的总结
Java教程任何编程语言中最常见的程序结构就是顺序结构.顺序结构就是程序从上到下逐行的执行,中间没有任何判断和跳转. 如果 main 方法的多行代码之间没有任何流程控制,则程序总是从上向下依次执行,排 ...
- c语言 选择结构,C语言学习:选择结构
综述 (1)if语句的一般形式 (2)switch语句的介绍 (3)关系运算符和关系表达式 (4)逻辑运算符和逻辑表达式 (5)条件运算符和条件表达式 (1)if语句的一般形式 在C中选择结构用到最多 ...
- C语言中的选择结构——if语句/if...else语句
概述 C语言支持最基本的三种程序运行结构:顺序结构.选择结构.循环结构. 顺序结构:程序按顺序执行,不发生跳转. 选择结构:依据是否满足条件,有选择的执行相应功能. 循环结构:依据条件是否满足,循环多 ...
- c语言ns图选择结构程序设计,项目3选择结构程序设计.ppt
项目3选择结构程序设计 项目3 选择结构程序设计 [任务目标] 掌握关系运算符.逻辑运算符和条件运算符的用法 掌握选择结构程序设计的方法 能够画出选择结构的流程图 能够用选择结构程序设计解决实际问题 ...
- 语言C++之选择结构
这些只是本蒟蒻的一些见解,还望各位神犇积极评论提出宝贵意见,万分感谢!!!!!!!!!! 第三篇啊,给点关注和赞吧,以后会写更多的!!!!!!!!!!!!!!!!!!!!!!!!! 之前我们学的是C+ ...
- C语言入门:选择结构-分段函数问题
C语言:选择结构-分段函数问题 写一段程序,输入x,输出y #include<stdio.h>int main(void){ double x,y;scanf("%lf" ...
最新文章
- 计算C#程序执行时间
- 上海肯特选用Ultimus 提升企业管理
- Hadoop Yarn公平调度器的特点、缺额、DRF策略
- auto_ptr的简单实现
- 转载:KOF97八神攻防战
- java. 端序_c代码测试本机处理器的端序
- python:01字串
- java构造方法,构造代码块,静态代码块的执行顺序
- 动态分配内存的初始化
- git flow使用
- 16进制颜色码转化rgba
- cas4.x 单点登录开发入门
- 链表的节点与指针 (重新理解)
- php txt替换,文本替换专家批量替换TXT文本内容教程
- Discuz的sc 和tc版本有什么区别
- Alpha测试 / Beta测试 / 黑盒测试 /白盒测试概述
- Web与小程序AR技术原理
- 姓氏排序程序 Js 版(小程序共享)
- 算法设计与分析——动态规划(二):钢条切割
- Redis 6 学习记录
热门文章
- ORA-16032: parameter LOG_ARCHIVE_DEST_3 destination string cannot be translated
- Vue上传文件 iview Upload UI 组件上传组件
- 综述 | 结肠细胞代谢如何塑造肠道菌群
- 4G 优盘格式化后变4M 利用量产工具修复~~~
- linux 物理内存释放,swap释放
- 自动测试系统用什么软件,自动测试系统软件,automated test system software,音标,读音,翻译,英文例句,英语词典...
- 使用vi编辑器创建文本文件
- python易盾滑动验证码
- 14: PYCURL ERROR 6 - Couldn't resolve host 'mirro
- 安检x光机原理计算机实现,安检X光机组成及工作原理(图文)