C语言

单片机c语言教程:C51循环语句

时间:2025-10-14 08:50:24 蔼媚 C语言 我要投稿
  • 相关推荐

单片机c语言教程:C51循环语句

  循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作。下面是小编为大家收集的单片机c语言教程:C51循环语句,仅供参考,大家一起来看看吧。

  单片机c语言教程:C51循环语句

  我们能知道这 1000 条空语句, 无非就是一条空语句重复执行 1000 次,因此我们就能用循环语句去写,这样不但使程序结构清晰明了,而且使其编译的效率大大的提高。在 C 语言中构成循环控制的语句有 while,do-while,for 和 goto 语句。同样都是起到循环作用,但具体的作用和使用方法又大不一 样。我们具体来看看。

  goto 语句

  这个语句在很多高级语言中都会有,记得小时候用 BASIC 时就很喜欢用这个语句。它是 一个无条件的转向语句,只要执行到这个语句,程序指针就会跳转到 goto 后的标号所在的 程序段。它的语法如下:

  goto 语句标号; 其中的语句标号为一个带冒号的标识符。示例如下

  void main(void)

  {

  unsigned char a;

  start: a++;

  if (a==10) goto end;

  goto start;

  end:;

  }

  上面一段程序只是说明一下 goto 的使用方法,实际编写很少使用这样的手法。这段程序的意思是在程序开始处用标识符“start:”标识,表示程序这是程序的开始,“end:”标识程序的 结束,标识符的定义应遵循前面所讲的标识符定义原则,不能用 C 的关键字也不能和其它变 量和函数名相同,不然就会出错了。程序执行 a++,a 的值加 1,当 a 等于 10 时程序会跳到 end 标识处结束程序,不然跳回到 start 标识处继续 a++,直到 a 等于 10。上面的示例说明 goto 不但能无条件的转向,而且能和 if 语句构成一个循环结构,这些在 C 程序员的程 序中都不太常见,常见的 goto 语句使用方法是用它来跳出多重循环,不过它只能从内层循环 跳到外层循环,不能从外层循环跳到内层循环。在下面说到 for 循环语句时再略为提一提。 为何大多数 C 程序员都不喜欢用 goto 语句?那是因为过多的使用它时会程序结构不清晰,过多的跳转就使程序又回到了汇编的编程风格,使程序失去了 C 的模块化的优点。

  while 语句

  while 语句的意思很不难理解,在英语中它的意思是“当…的时候…”,在这里我们可 以理解为“当条件为真的时候就执行后面的语句”,它的语法如下:

  while (条件表达式) 语句;

  使用 while 语句时要注意当条件表达式为真时,它才执行后面的语句,执行完后再次回

  到 while 执行条件判断,为真时重复执行语句,为假时退出循环体。当条件一开始就为假时, 那么 while 后面的循环体(语句或复合语句)将一次都不执行就退出循环。在调试程序时要注意 while 的判断条件不能为假而造成的死循环,调试时适当的在 while 处加入断点,也许 会使你的调试工作更加顺利。当然有时会使用到死循环来等待中断或 IO 信号等,如在第一 篇时我们就用了 while(1)来不停的输出“Hello World!”。下面的例子是显示从 1 到 10 的累 加和,读者能修改一下 while 中的条件看看结果会如果,从而体会一下 while 的使用方法。

  #include

  #include

  void main(void)

  {

  unsigned int I = 1;

  unsigned int SUM = 0; //设初值

  SCON = 0x50; //串行口方式 1,允许接收

  TMOD = 0x20; //定时器 1 定时方式 2

  TCON = 0x40; //设定时器 1 开始计数

  TH1 = 0xE8; //11.0592MHz 1200 波特率

  TL1 = 0xE8; TI = 1;

  TR1 = 1; //启动定时器

  while(I<=10)

  {

  SUM = I + SUM; //累加

  printf ("%d SUM=%dn",I,SUM); //显示

  I++;

  }

  while(1); //这句是为了不让程序完后,程序指针继续向下造成程序“跑飞”

  }

  //最后运行结果是 SUM=55;

  do while 语句

  do while 语句能说是 while 语句的补充,while 是先判断条件是否成立再执行循环体,

  而 do while 则是先执行循环体,再根据条件判断是否要退出循环。这样就决定了循环体无 论在任何条件下都会至少被执行一次。它的语法如下:

  do 语句 while (条件表达式)

  用 do while 怎么写上面那个例程呢?先想一想,再参考下面的程序。

  #include

  #include

  void main(void)

  {

  unsigned int I = 1;

  unsigned int SUM = 0; //设初值

  SCON = 0x50; //串行口方式 1,允许接收 TMOD = 0x20; //定时器 1 定时方式 2

  TCON = 0x40; //设定时器 1 开始计数

  TH1 = 0xE8; //11.0592MHz 1200 波特率 TL1 = 0xE8;

  TI = 1;

  TR1 = 1; //启动定时器

  do

  {

  SUM = I + SUM; //累加

  printf ("%d SUM=%dn",I,SUM); //显示 I++;

  }

  while(I<=10);

  while(1);

  }

  c++ c语言while 循环语句入门基础教程

  While 循环语句,它跟 For 循环区别在于,For 循环一般知道循环次数,在第一行里头就指明了,而while循环一般不知道循环次数,下面我们来看一个练习;

  1、启动 Geany

  1)点菜单“应用程序-编程-Geany”启动 Geany ,新建一个 c++ 源程序;

  2)点菜单“文件-另存为”命令,以“while”为文件名,保存文件到自己的文件夹;

  2、输入程序代码

  1)输入一个求和的程序,当输入为 0 时结束;

  #include

  using namespace std;

  int main(int argc, char** argv)

  int a = 0;

  int sum = 0;

  cout << "input a number: ";

  cin >> a;

  while (a != 0)

  sum = sum +a;

  cout << "input a number: ";

  cin >> a;

  cout << "sum = " << sum;

  return 0;

  2)第一段是定义两个变量,存放输入和总和,

  第二段是先提示输入一个值,

  第三段是循环,括号里面先判断一下 a 的值,不是 0 就求和,然后继续输入、判断、求和,直到不满足条件退出循环,

  下面一段是输出最终求和的结果;

  3)保存、编译、生成、运行,从键盘上不断输入数,最后输一个 0,得到求和的结果;

  3)while 和 for 循环的区别是,while 循环要先判断条件,满足了再循环,一般用在读取文件中,读到文件结尾了就退出;

  本节学习了 while 循环的基本操作,如果你成功地完成了练习,请学习下一课内容。

【单片机c语言教程:C51循环语句】相关文章:

c++ c语言while 循环语句入门基础教程03-20

C语言循环控制实例教程06-06

单片机C语言入门教程03-13

C语言for循环04-08

C语言循环语句知识点12-09

C语言三种循环语句03-17

C语言循环结构04-30

C语言for循环的使用04-05

C语言跳出循环01-01