登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] C语言数组与if和switch语句的应用

[复制链接]
发表于 2018-1-28 23:08:20 | 显示全部楼层 |阅读模式
学习笔记
学习科目: C语言数组与if和switch语句的应用
学习安排: 《手把手教你学51单片机》第六章
开始时间: 2018-01-28
结束时间: 2018-01-28
在之前我们已经学过变量的基本类型,比如 char、 int 等等。这种类型描述的都是单个具有特定意义的数据,当我们要处理拥有同类意义但是却包含很多个数据的时候,就可以用到数组了,比如我们上次那个数码管的真值表,就是用一个数组来表达的。
数组是具有相同数据类型的有序数据的组合,一般来讲,数组定义后满足以下三个条件。
1、具有相同的数据类型;
2、具有相同的名字;
3、在存储器中是被连续存放的。
比如上个帖子中最后程序中写下的:
unsigned char LedChar[16] = {
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};
在这个数组中的每个值都称之为数组的一个元素,这些元素都具备相同的数据类型就是unsigned char 型,他们有一个共同的名字 LedChar,他们是存放在一块连续的存储空间里的。有一点要特别注意,这个数组一共有 16(中括号里面的数值)个元素,但是数组的单个元素的表达方式——下标是从 0 开始,因此实际上上边这个数组的首个元素 LedChar[0]的值是 0xC0,而 LedChar[15]的值是 0x8E,下标从 0 到 15 一共是 16 个元素。我们在程序中用到数组的时候要先声明数组,现在我们用到的简单数组的声明格式如下
数据类型 数组名 [数组长度];

根据数组的定义我们知道我们定义的数组内的元素必须具有相同的数据类型,而且只能由字母、数字、下划线这三种符号组成,且第一个字符只能是字母或者下划线。
数组在进行声明的同时可以进行初始化操作,格式如下:
数据类型 数组名 [数组长度] = {初值列表};
还是以上个帖子我们用的数码管的真值表为例来讲解注意事项。
unsigned char LedChar[16] = {
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};
1、初值列表里的数据之间要用逗号隔开;
2、初值列表里的初值的数量必须等于或小于数组长度,当小于数组长度时,数组的后边没有赋初值的元素由系统自动赋值为 0。
3、若给数组的所有元素都赋初值,那么可以省略数组的长度。
4、系统为数组分配连续的存储位置的时候,数组元素的相对次序由下标来决定,就是说 LedChar[0]、 LedChar[1]„„LedChar[15]是按照顺序紧挨着依次排下来的。在 C 语言程序中,是不能一次使用整个数组的,只能使用数组的单个元素。一个数组元素相当于一个变量,使用数组元素的时候与使用相同数据类型的变量的方法是一样的。
接下来我们来讲if语句的几种形式和用法, QQ截图20180128224141.png
首先是if 语句的默认形式,其执行过程是, if(即如果)条件表达式的值为“真”,则执行语句 1;如果条件表达式的值为“假”,则不执行语句 1。
第二种是if...else 语句
有些情况下,我们除了要在括号里条件满足时执行相应的语句外,在不满足该条件的时候,也要执行一些另外的语句,这时候就用到了 if...else 语句,它的基本语法形式是:
if (条件表达式)
{
语句 1;
}
else
{
语句 2;
}

基本意思就是如果符合条件就执行语句1,不符合就是执行语句2,很简单的逻辑。
最后一种是if....else if 语句他的基本语法格式是:
if (条件表达式 1) {语句 1;}
else if (条件表达式 2) {语句 2;}
else if (条件表达式 3) {语句 3;}
... ...
else {语句 n;}
他的执行过程是:依次判断条件表达式的值,当出现某个值为“真”时,则执行相对应的语句,然后跳出整个 if 的语句块,执行“语句 n”后面的程序;如果所有的表达式都为“假”,则执行 else 分支的“语句 n”后,再执行“语句 n”后边的程序。

if语句的用法就这么三种,最后一种if....else 语句在处理多分支的时候,分支太多就会显得不方便,且容易出现 if 和 else配对出现错误的情况,在 C 语言中提供了另外一种多分支选择的语句——switch 语句,它的基本语法格式如下
switch (表达式)
{
case 常量表达式 1: 语句 1;
case 常量表达式 2: 语句 2;
......
case 常量表达式 n: 语句 n;
default: 语句 n+1;
}

它的执行过程是:首先计算“表达式”的值,然后从第一个 case 开始,与“常量表达式x”进行比较,如果与当前常量表达式的值不相等,那么就不执行冒号后边的语句 x,一旦发现和某个常量表达式的值相等了,那么它会执行之后所有的语句,如果直到最后一个“常量表达式 n”都没有找到相等的值,那么就执行 default 后的“语句 n+1”。请特别注意一点,当找到一个相等的 case 分支后,会执行该分支以及之后所有分支的语句,如果我们不想这样,只想找到符合的直接跳出这个语句,选择其中的一个分支来执行,执行完后就结束整个 switch 语句,而继续执行 switch后面的语句,此时就可以通过在每个分支后加上 break 语句来实现了,就像这样

case 常量表达式 1: 语句 1; break;
到此为止,C语言的四种基本语句我们都了解过了,分别是if,while,switch,for语句,这些语句我们在以后的变成中会经常使用到的。

好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表