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基本语句之条件选择语句相关推荐

  1. c语言4 答案详解,2019考研数据结构C语言版详解答案(4)

    <数据结构(C语言版)>复习重点在二.三.六.七.九.十章,考试内容两大类:概念,算法,自从计算机专业课统考以后,专业课考试题型分为2类,一类选择题,一类综合应用题.本次新东方在线整理了数 ...

  2. 59s计时器C语言程序步骤详解,51单片机00-59秒计时器 0-59s Timer

    51单片机00-59秒计时器 0-59s Timer 1.  实验任务 如下图所示,在AT89S51单片机的P0和P2端口分别接有两个共阴数码管,P0口驱动显示秒时间的十位,而P2口驱动显示秒时间的个 ...

  3. r 语言c函数,R语言常用函数详解

    R语言对于我们生信人员来讲,再熟悉不过,然而任何一门语言想要学好,必须经过常年的日积月累才可以做到,在这里,我列举R中常用的函数的用法, 供大家学习. 1.序列函数seq 用法: seq(form,t ...

  4. R语言基础知识详解及概括

    R语言基础知识详解及概括 目录 R语言基础知识详解及概括 R数据可视化示例 R语言进行数据创建

  5. Java教程:Java continue语句详解

    Java教程有时强迫一个循环提早反复是有用的,也就是,你可能想要继续运行循环,但是要忽略这次重复剩余的循环体的语句,所以 Java 提供了 continue 语句.continue 语句是 break ...

  6. Java continue语句详解

    有时强迫一个循环提早反复是有用的,也就是,你可能想要继续运行循环,但是要忽略这次重复剩余的循环体的语句,所以 Java 提供了 continue 语句.continue 语句是 break 语句的补充 ...

  7. 单片机c语言常用的语句有几条,单片机C语言常用语句详解

    <单片机C语言常用语句详解>由会员分享,可在线阅读,更多相关<单片机C语言常用语句详解(22页珍藏版)>请在人人文库网上搜索. 1.C51编程中常见语句的总结.首先,C51定义 ...

  8. 单片机c语言常用语,单片机C语言常用语句详解

    <单片机C语言常用语句详解>由会员分享,可在线阅读,更多相关<单片机C语言常用语句详解(22页珍藏版)>请在人人文库网上搜索. 1.C51编程常用语句总结,一.C51定义SFR ...

  9. MySQL数据库增删改查常用语句详解

    MySQL数据库增删改查常用语句详解 一 MySQL数据库表结构 1.1 常见数据类型 1.2 常用约束类型 1.3 MySQL存储引擎 二 DDL语句:数据定义语句 2.1 修改数据库密码 2.1. ...

最新文章

  1. 分享:个人是怎么学习新知识的
  2. tvOS模拟器遥控的快捷键
  3. Struts 2常用的Ajax标签
  4. 代码生成平台Xxl-Code-Generator
  5. SAP Spartacus HTML Tags 实现介绍
  6. 来领.NET Core学习资料,7天整理了30多个G(适合各阶段.Net开发者)
  7. Twitch 宣布 2016 年第二季度完全抛弃 Flash
  8. 【linux 001】【利用staging Driver】【001】wifi AR6000 驱动移植引发的 staging 的问题
  9. java 安卓 html文件怎么打开方式_android 浏览器 打开本地html文件的方法
  10. 零基础怎么玩转可视化大屏?这个工具只需5步!
  11. 大型互联网网站架构心得之一:分
  12. python 杂志_Python周刊中文版(第477期)
  13. Drools(BRMS) 速成教程(上)
  14. CGAL学习记录——点云密度计算
  15. 由Yardi赞助的报告披露亚太房地产科技投资详情
  16. Redis(基于狂神说Java-Redis)
  17. 前后端分离项目全环境搭建(Ruoyi框架)
  18. 付费学习,花钱比意志力靠谱
  19. 别人的面经(算法方向)
  20. OO,OO以后,及其极限

热门文章

  1. Alex 我为自己代言
  2. 《炬丰科技-半导体工艺》电子半导体白皮书
  3. python d3d_GitHub - shenxiangzhuang/PythonDataAnalysis at c5498c038bbddd512d3d7801b5f91c4603e70ba2
  4. 用电脑无线投屏到电视屏幕的连接方法
  5. unity3D游戏开发十之粒子系统
  6. 无人机姿态表示方法及相互转换(欧拉角、方向余弦矩阵、四元数)
  7. 计算机病毒的入侵路径,计算机病毒的入侵方式有哪些?
  8. 计算机应用专业教学进度表,《计算机应用基础》教学计划 附:教学进度表.doc...
  9. 区分阿里云系统盘和数据盘
  10. 微信小程序实现登录页面