51单片机c语言常用语句详解,51单片机之C语言-4.5基本语句之条件选择语句
1. 条件选择语句之if
语句
前面我们讲了数据类型,运算符及表达式。C语言也是一种语言,既然是语言,一定有连接词。这些连接词可以用来表示假设,循环等等。我们先来看看假设if语句。这些连接词有一定的规则,我们只能按照这些规则来编写,否则编译器无法理解,就出错了。
第一种形式为基本形式: if
if(表达式)语句
其语义是:如果表达式的值为真,则执行后面的语句,否则不执行该语句。
这个很好理解,if就是’如果’的意思,如果外面下雨,就带雨伞。在这里“外面下雨”,就是表达式,如果这个表达式是对的,就执行后面的’带雨伞’这个动作。
第二种形式为: if-else
if(表达式)
语句1;
else
语句2;
其语义是:如果表示式的值为真,则执行语句1,否则执行语句2
其执行过程如下图:
举个例子,如果外面下雨就步行,否则就骑自行车。如果’外面下雨’是真的那么就执行’步行’的动作,否则就执行’骑自行车’的动作。
第三种形式为if-else-if形式
前面的表达式很好理解,只有一个,但是对于多个表达式怎么办?这里就用if-else-if语句。其一般形式为:
if(表达式)
语句1;
else if(表达式2)
语句2;
else (表达式3)
语句3;
...
else if(表达式m)
语句m;
else
语句n;
其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。如果所有的表达式均为假,则执行语句n。然后继续执行后续程序
在使用if语句中还应注意以下问题:
(1) 在三种形式的if语句中,在if关键字后均为表达式。该表达式通常是逻辑表达式或关系表达式,但也可以是其他表达式,如赋值表达式等,甚至也可以是一个变量。
例如: if(a=5)语句; if(b)语句; if(a=b)语句;
(2) 在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。
(3)在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。但要注意的是在}之后不能再加分号。
(4) 在if嵌套语句中,C语言规定,else总是与它前面最近的if配对。
例子:
#include
void main(void)
{
int a,b;
scanf_s("%d%d",&a,&b);
//if第一种形式
if (a >= b) printf("The bigger number is %d\n",a);
//if第二种形式
if (a >= b)
{
printf("The bigger number is %d\n", a);
}
else
{
printf("The bigger number is %d\n", b);
}
system("pause");
}
2. 条件选择语句switch语句
如果分支语句太多,将会使用很多if语句,这样导致程序的可读性很差。这里再来了解一下另外一个条件选择语句,多分支选择switch语句, 其一般形式为:
switch(表达式){
case 常量表达式1: 语句1;break;
case 常量表达式2: 语句2;break;
...
case 常量表达式n: 语句n;break;
default :语句n+1;break;
}
其语义是:计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。注意如果省略break语句,那么CPU会继续执行表达式对应的常量表达式后面的语句。比如,在switch(表达式)中表达式等于常量表达式2,如果语句2后面没有break,那么cpu执行完语句2将继续执行语句3,4,...语句n
现在我们来举个例子说明.
例4-5-1-2
基本语句之switch
语句创建
LED流水灯
#include "reg52.h"
typedef unsigned char uchar;
void delayUs(uchar t);
void delayMs(uchar t);
void main(void)
{
uchar i;
while(1)
{
for(i=0;i<8;i++)
{
switch(i){
case 0: P1=0XFE;break;//点亮第1个灯
case 1: P1=0XFD;break;//点亮第2个灯
case 2: P1=0XFB;break;//点亮第3个灯
case 3: P1=0XF7;break;//点亮第4个灯
case 4: P1=0XEF;break;//点亮第5个灯
case 5: P1=0XDF;break;//点亮第6个灯
case 6: P1=0XBF;break;//点亮第7个灯
case 7: P1=0X7F;break;//点亮第8个灯
default: P1=0;break;
}
delayMs(255);
}
}
}
void delayUs(uchar t)
{
while(--t);
}
void delayMs(uchar t)
{
while(--t)
{
delayUs(245);
delayUs(245);
}
}
51单片机c语言常用语句详解,51单片机之C语言-4.5基本语句之条件选择语句相关推荐
- c语言4 答案详解,2019考研数据结构C语言版详解答案(4)
<数据结构(C语言版)>复习重点在二.三.六.七.九.十章,考试内容两大类:概念,算法,自从计算机专业课统考以后,专业课考试题型分为2类,一类选择题,一类综合应用题.本次新东方在线整理了数 ...
- 59s计时器C语言程序步骤详解,51单片机00-59秒计时器 0-59s Timer
51单片机00-59秒计时器 0-59s Timer 1. 实验任务 如下图所示,在AT89S51单片机的P0和P2端口分别接有两个共阴数码管,P0口驱动显示秒时间的十位,而P2口驱动显示秒时间的个 ...
- r 语言c函数,R语言常用函数详解
R语言对于我们生信人员来讲,再熟悉不过,然而任何一门语言想要学好,必须经过常年的日积月累才可以做到,在这里,我列举R中常用的函数的用法, 供大家学习. 1.序列函数seq 用法: seq(form,t ...
- R语言基础知识详解及概括
R语言基础知识详解及概括 目录 R语言基础知识详解及概括 R数据可视化示例 R语言进行数据创建
- Java教程:Java continue语句详解
Java教程有时强迫一个循环提早反复是有用的,也就是,你可能想要继续运行循环,但是要忽略这次重复剩余的循环体的语句,所以 Java 提供了 continue 语句.continue 语句是 break ...
- Java continue语句详解
有时强迫一个循环提早反复是有用的,也就是,你可能想要继续运行循环,但是要忽略这次重复剩余的循环体的语句,所以 Java 提供了 continue 语句.continue 语句是 break 语句的补充 ...
- 单片机c语言常用的语句有几条,单片机C语言常用语句详解
<单片机C语言常用语句详解>由会员分享,可在线阅读,更多相关<单片机C语言常用语句详解(22页珍藏版)>请在人人文库网上搜索. 1.C51编程中常见语句的总结.首先,C51定义 ...
- 单片机c语言常用语,单片机C语言常用语句详解
<单片机C语言常用语句详解>由会员分享,可在线阅读,更多相关<单片机C语言常用语句详解(22页珍藏版)>请在人人文库网上搜索. 1.C51编程常用语句总结,一.C51定义SFR ...
- MySQL数据库增删改查常用语句详解
MySQL数据库增删改查常用语句详解 一 MySQL数据库表结构 1.1 常见数据类型 1.2 常用约束类型 1.3 MySQL存储引擎 二 DDL语句:数据定义语句 2.1 修改数据库密码 2.1. ...
最新文章
- 分享:个人是怎么学习新知识的
- tvOS模拟器遥控的快捷键
- Struts 2常用的Ajax标签
- 代码生成平台Xxl-Code-Generator
- SAP Spartacus HTML Tags 实现介绍
- 来领.NET Core学习资料,7天整理了30多个G(适合各阶段.Net开发者)
- Twitch 宣布 2016 年第二季度完全抛弃 Flash
- 【linux 001】【利用staging Driver】【001】wifi AR6000 驱动移植引发的 staging 的问题
- java 安卓 html文件怎么打开方式_android 浏览器 打开本地html文件的方法
- 零基础怎么玩转可视化大屏?这个工具只需5步!
- 大型互联网网站架构心得之一:分
- python 杂志_Python周刊中文版(第477期)
- Drools(BRMS) 速成教程(上)
- CGAL学习记录——点云密度计算
- 由Yardi赞助的报告披露亚太房地产科技投资详情
- Redis(基于狂神说Java-Redis)
- 前后端分离项目全环境搭建(Ruoyi框架)
- 付费学习,花钱比意志力靠谱
- 别人的面经(算法方向)
- OO,OO以后,及其极限
热门文章
- Alex 我为自己代言
- 《炬丰科技-半导体工艺》电子半导体白皮书
- python d3d_GitHub - shenxiangzhuang/PythonDataAnalysis at c5498c038bbddd512d3d7801b5f91c4603e70ba2
- 用电脑无线投屏到电视屏幕的连接方法
- unity3D游戏开发十之粒子系统
- 无人机姿态表示方法及相互转换(欧拉角、方向余弦矩阵、四元数)
- 计算机病毒的入侵路径,计算机病毒的入侵方式有哪些?
- 计算机应用专业教学进度表,《计算机应用基础》教学计划 附:教学进度表.doc...
- 区分阿里云系统盘和数据盘
- 微信小程序实现登录页面