c语言三种循环结构

合集下载

c语言常用的循环结构

c语言常用的循环结构

c语言常用的循环结构1C语言循环结构C语言中拥有多种循环结构供我们使用,本篇文章将要介绍三种常用的循环结构:while循环、for循环、do-while循环。

1while循环while循环体的结构和逻辑表达式之间的关系是“当…时",它首先判断循环条件是否满足,如果满足就进入if语句块执行,然后执行完if语句块后继续判断循环条件是否满足,如果条件不满足while循环结束,程序执行else语句块或者后续语句。

例程:```x=0;while(x<10)//如果x小于10{x++;//x加1printf("x的值为:%d\n",x);}```2for循环for循环体的结构和逻辑表达式和for循环的三个部分,分别是初始化语句、循环条件语句和循环控制语句,当满足初始化条件时,执行for循环语句,每一次都会执行循环条件来判断for循环的退出条件,如果退出条件循环语句满足,for循环结束,执行后续语句。

例程:```for(int i=0;i<10;i++)//使用for循环循环10次{printf("i的值:%d\n",i);}```3do-while循环do-while循环体的结构和逻辑表达式之间的是“先做…再判断",它会先执行一次do-while循环,然后在根据逻辑表达式判断是否继续循环,如果满足执行条件继续循环,反之执行后续语句。

例程:```int x=0;do//循环开始{x++;//x的值增加printf("x的值为:%d\n",x);}while(x<10);//当x小于10时继续循环```以上就是C语言中常用的三种循环结构,由此可见在C语言中可以借助循环语句实现重复代码的执行,是程序开发中一大帮助。

c语言3大基本结构

c语言3大基本结构

c语言3大基本结构C语言是一种广泛应用的编程语言,其简洁高效的特点使其成为了许多程序员的首选语言。

在学习C语言时,了解它的基本结构是非常重要的。

C语言中有三个基本结构,分别是顺序结构、选择结构和循环结构。

下面将详细介绍这三种基本结构。

一、顺序结构顺序结构是指程序按照代码书写顺序依次执行的过程。

在C语言中,每一行代码都会按照书写顺序被执行。

例如:```#include <stdio.h>int main(){printf("Hello, World!\n");printf("This is my first C program.\n");return 0;}```以上代码就是一个典型的顺序结构程序。

程序从第一行开始执行,按照代码书写顺序依次执行每一行代码,直到程序结束。

二、选择结构选择结构是指根据条件判断来决定程序执行哪些代码段。

在C语言中,选择结构主要有if语句和switch语句两种形式。

1. if语句if语句可以根据条件判断来决定是否执行某段代码。

其基本形式如下:```if (condition){// 如果condition为真,则执行这里的代码}else{// 如果condition为假,则执行这里的代码}```例如:```#include <stdio.h>int main(){int a = 10;if (a > 0){printf("a是正数\n");}else{printf("a是负数或零\n");}return 0;}```以上代码中,if语句根据变量a的值判断是否为正数,如果是则输出"a是正数",否则输出"a是负数或零"。

2. switch语句switch语句也可以根据条件判断来决定执行哪些代码段。

其基本形式如下:```switch (expression){case value1:// 如果expression等于value1,则执行这里的代码break;case value2:// 如果expression等于value2,则执行这里的代码break;default:// 如果expression不等于任何一个case中的值,则执行这里的代码break;}```例如:```#include <stdio.h>int main(){int score = 85;switch (score / 10) {case 10:case 9:printf("优秀\n"); break;case 8:printf("良好\n"); break;case 7:printf("中等\n");break;case 6:printf("及格\n");break;default:printf("不及格\n");break;}return 0;}```以上代码中,switch语句根据变量score的值判断成绩等级,根据不同的分数段输出不同的信息。

c语言循环结构三种形式

c语言循环结构三种形式

c语言循环结构三种形式
c语言循环结构主要有三种形式:for, while和do-while循环。

for循环应用最为广泛,最开始就非常有效地在程序中实现循环,具有如下优点:
(1)for循环可以方便地设置初始值、循环条件和自增步长;
(2)可以轻松实现多次循环;
(3)for循环可以轻松实现多次跳转,提高代码效率。

while循环移植性很强,可以在各种编程环境中使用,其特点如下:
(1)while循环这种结构可以在完成迭代后进行求和、求交集等操作;
(2)while循环操作符号简单,只有while、break、continue;
(3)while循环可以满足常见的迭代需求,如逐行读取文件、拆分字符串以及连接字符串等。

do-while循环最大的优势在于可以保证循环至少执行一次,其优点如下:
(1)执行流程不会因外部影响而受到损害;
(2)循环条件位于循环末尾;
(3)可以简单实现多次迭代,可以根据条件来完成不同的功能。

总的来说,c语言的循环结构非常灵活,根据实际需求可以采用for、while或者do-while结构进行编程。

对于开发者来说,掌握这三种循环结构将可以帮助你更加方便有效地完成程序编写任务。

C语言循环结构-whiledo...whilefor--逢3过,阶乘,九九乘法表

C语言循环结构-whiledo...whilefor--逢3过,阶乘,九九乘法表

C语⾔循环结构-whiledo...whilefor--逢3过,阶乘,九九乘法表C语⾔中的循环主要有三种: while循环,do…while循环和for循环while循环:先判断条件是否成⽴,如果条件成⽴将执⾏其下的循环体,如果条件不成⽴⼀次都不执⾏。

语法:while(条件){//循环体;}⽰例1:打印100遍"我是最棒的!"int i=1;while(i<=100){printf("第%d遍:我是最棒的!\n",i);i++;}⽰例1:打印100遍"我是最棒的!"int i=1;while(i<=100){printf("第%d遍:我是最棒的!\n",i);i++;}do...while结构:先执⾏循环体,再判断条件是否为真,如果为真继续执⾏,如果为假终⽌循环===>先执⾏,再判断(⾄少会执⾏⼀次)语法: do{循环体;}while(条件);⽰例: 0~100的奇数和int i=0,sum=0;do{if(i%2!=0){sum+=i;}i++;}while(i<100);printf("0~100之间的所有奇数和为:%d\n",sum);⽰例:猜价格⾼低:5次机会int number,i=0,price=100;do{printf("请输⼊商品价格:\n");scanf("%d",&number);if(number<price){printf("低了!\n");}else if(number>price){printf("⾼了!\n");}else{printf("猜中了!\n");break;//跳出循环}i++;}while(i<5);for循环:在for循环中;是不能或缺的,表达式1,表达式2,表达式3都可以省略。

c语言中loop的用法

c语言中loop的用法

c语言中loop的用法C语言中loop的用法引言:在计算机编程中,loop(循环)是一种重要的结构,它可以重复执行一段代码,节省时间和资源。

在C语言中,循环结构的使用非常广泛,它可以用来处理不同的问题,提高程序的效率。

本文将深入探讨C语言中loop 的用法,包括常见的循环类型、循环的控制语句、循环的嵌套以及避免陷入无限循环的方法等。

一、循环类型在C语言中,常见的循环类型有三种:while循环、do-while循环和for 循环。

1.1. while循环while循环在满足条件的情况下会一直执行循环体内的代码。

当条件不满足时,while循环会终止。

while (条件)循环体}1.2. do-while循环do-while循环首先执行循环体内的代码,然后检查条件是否满足。

如果条件满足,则继续执行循环体,否则终止循环。

do{循环体} while (条件);1.3. for循环for循环是一种常用的循环结构,它在定义循环变量、判断条件和执行循环体这三个方面提供了更大的灵活性。

for (初始化; 条件; 更新){循环体二、循环的控制语句在循环中,我们可以使用控制语句来改变循环的执行流程。

2.1. break语句break语句用于立即终止当前循环,并退出循环结构。

while (条件){if (某个条件){break;}}2.2. continue语句continue语句用于跳过当前循环中剩余的代码,并开始下一次循环的执行。

while (条件){if (某个条件){continue;}}2.3. goto语句goto语句可以无条件地将程序的控制转移到标签处。

while (条件){if (某个条件){goto label;}}label:标签处的代码三、循环的嵌套在C语言中,我们可以将一个循环结构嵌套在另一个循环结构中,这样可以实现更复杂的逻辑。

for (int i = 0; i < 10; i++){for (int j = 0; j < 10; j++){嵌套循环体}}嵌套循环可以用于解决一些复杂的问题,例如遍历多维数组、打印图形等。

c语言中循环结构

c语言中循环结构

c语言中循环结构循环结构在C语言中是一种非常重要的控制结构,它能够让程序重复执行某段代码,实现代码的复用和效率的提高。

循环结构主要有三种形式:while循环、do-while循环和for循环。

1. while循环while循环是一种先判断条件再执行的循环结构。

它的语法形式如下:```while (条件) {循环体语句;}```在循环开始之前,先判断条件是否成立,如果条件成立,则执行循环体语句;否则,跳过循环体语句,继续执行后面的代码。

循环体执行完毕后,再次判断条件是否成立,如果成立,则继续执行循环体语句,直到条件不成立为止。

2. do-while循环do-while循环和while循环类似,不同之处在于它是先执行循环体,再判断条件是否成立。

它的语法形式如下:```do {循环体语句;} while (条件);```在循环开始时,先执行循环体语句,然后判断条件是否成立,如果条件成立,则继续执行循环体语句,否则跳出循环。

3. for循环for循环是一种常用的循环结构,它的语法形式如下:```for (初始化表达式; 条件表达式; 更新表达式) {循环体语句;}```for循环的执行顺序是先执行初始化表达式,然后判断条件是否成立,如果条件成立,则执行循环体语句;执行完循环体语句后,再执行更新表达式,再次判断条件是否成立,以此类推。

当条件不成立时,跳出循环。

循环结构的应用非常广泛,可以用于处理各种重复性任务,比如计算数列的和、输出九九乘法表等。

下面以计算数列的和为例,演示这三种循环结构的使用。

我们来看一下使用while循环计算数列的和的代码:```#include <stdio.h>int main() {int n = 10; // 数列的长度int sum = 0; // 数列的和int i = 1; // 循环变量while (i <= n) {sum += i;i++;}printf("数列的和为:%d\n", sum);return 0;}```在这段代码中,我们使用while循环从1开始累加到n,得到数列的和。

C语言 循环结构

C语言 循环结构

循环结构一、循环的分类1、计数型循环:事先知道循环的次数。

非计数型循环:事先不知道循环的次数。

2、当型循环:“先判断,后执行”,循环体有可能执行0遍。

直到型循环:“先执行,后判断”,循环体至少执行一遍。

二、while语句:擅长描述当型循环1、格式:while(表达式)语句2、功能:3、说明:(1)“表达式”通常是关系或逻辑表达式,也可以是任意表达式(结果是数值型即可)。

(2)“语句”又称“循环体(语句)”,必须是一个以分号结束的语句,或一个复合语句。

(3)“循环体”中必须有一个操作,使得“表达式”最终为0(条件不成立)否则,会出现“无限循环”即“死循环”,若出现“死循环”,按“Ctrl+Break”键终止程序的执行。

然后修改程序。

4、基本算法二:累加例如:求1+2+3+……+100的和。

main(){int s, i; s=0; i=1;while(i<=100){s=s+i; i=i+1;}printf(“1+2+…+100=%d\n”, s);}【分析:出循环时,i为101,其最后一个合法取值(终值)为100;本题中s 被称为累加器,它以“s=s+……”的形式出现在循环中,该式被称为累加式,累加器在进入循环前必须获得合法初值,通常为0。

i是一个特殊的累加器,每次递增1,又称为计数器。

i身兼二职:控制循环的次数,同时兼做累加式的通项。

】三、do…while语句(直到型)1、格式:do语句while(表达式);2、功能:3、说明:(1)最后有一个分号(2)“语句”依然是一个语句(当含多个语句分量时,必须括成复合语句)(3)“表达式”成立时(非0)接着做“循环体语句”。

4、改写上例(累加):main(){int s, i;s=0; i=1;do{s=s+i;i=i+1;} while(i<=100);printf(“1+2+…+100=%d\n”, s);}【当型循环和直到型循环,在循环体被执行1次及1次以上时,通常可以互相替换】例2、输出1+1/2+1/3+…+1/100的和。

C语言中的循环结构

C语言中的循环结构

C语言中的循环结构循环结构是编程中常用的控制结构之一,它允许程序重复执行特定的代码块,直到满足某个条件为止。

在C语言中,有三种主要的循环结构:`for`循环、`while`循环和`do-while`循环。

首先,让我们来看一下`for`循环。

`for`循环是C语言中最常用的循环结构之一,它通常用于已知循环次数的情况。

`for`循环的语法如下:```for (初始化表达式; 条件表达式; 更新表达式) {// 循环体}```其中,初始化表达式用于初始化循环计数器,条件表达式用于判断循环是否继续执行,更新表达式用于更新循环计数器。

例如,下面的代码展示了一个简单的`for`循环,它会打印1到5的数字:```for (int i = 1; i <= 5; i++) {printf("%d\n", i);}```接下来,让我们来看一下`while`循环。

`while`循环用于在满足条件的情况下重复执行代码块,直到条件不再成立。

`while`循环的语法如下:while (条件表达式) {// 循环体}````while`循环会在每次循环开始前先检查条件表达式,如果条件为真,则执行循环体。

例如,下面的代码展示了一个简单的`while`循环,它会打印1到5的数字:```int i = 1;while (i <= 5) {printf("%d\n", i);i++;}```最后,让我们来看一下`do-while`循环。

`do-while`循环与`while`循环类似,不同之处在于`do-while`循环会先执行一次循环体,然后再检查条件是否成立。

`do-while`循环的语法如下:```do {// 循环体} while (条件表达式);`do-while`循环会先执行循环体,然后再检查条件表达式。

即使条件不成立,循环体至少会被执行一次。

例如,下面的代码展示了一个简单的`do-while`循环,它会打印1到5的数字:```int i = 1;do {printf("%d\n", i);i++;} while (i <= 5);```总的来说,循环结构在C语言中是非常重要的,它可以使程序更加灵活和高效。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P1=0xfb;//当P3.6口上的开关按上了,点亮接在P1.2口上的灯。
else if((P3&0x80)==0)//判断P3.7口的开关是否按上了。
P1=0xf7;//当P3.7口上的开关按上了,点亮接在P1.3口上的灯。
else P1=0xff;//当没有按键按下时,P1口上的全部灯都不亮。
}
while(1)
{
for(i=1;i<11;i++)
{
switch(i)
{
case 1: c=i*i;printf("%d\n",c);break;
case 2: c=i*i;printf("%d\n",c);break;
case 3: c=i*i;printf("%d\n",c);break;
case 4: c=i*i;printf("%d\n",c);break;
printf("%d\n",c);
else if(i==7)
printf("%d\n",c);
else if(i==8)
printf("%d\n",c);
else if(i==9)
printf("%d\n",c);
else if(i==9)
printf("%d\n",c);
}
}
}
void serial_init(void) //串口初始化函数
case 5: c=i*i;printf("%d\n",c);break;
case 6: c=i*i;printf("%d\n",c);break;
case 7: c=i*i;printf("%d\n",c);break;
case 8: c=i*i;printf("%d\n",c);break;
case 9: c=i*i;printf("%d\n",c);break;
{
TMOD = 0x20; //T1工作方式1,用于设定波特率
TH1 = 0xF3; //波特率4800Bps,12MHz晶振
TL1 = 0xF3;
PCON |= 0x80; //SMOD = 1,波特率加倍
SCON = 0x50; //允许发送接收
ES = 0; //禁止串口中断
TI = 1;
TR1 = 1;
TL1 = 0xF3;
PCON |= 0x80; //SMOD = 1,波特率加倍
SCON = 0x50; //允许发送接收
ES = 0; //禁止串口中断
TI = 1;
TR1 = 1;
}
分析:先给i赋值1,把i*i的值赋给c,再printf("%d\n",c)输出1的平方,然后判断i是否大于11,不是的话i自加1,变成2,再把c=2*2,输出2的平方“4”,以此类推······
case 4: P1=0xf7;break;//当i的值为4时,点亮P1.3口上的灯
case 5: P1=0xef;break;//当i的值为5时,点亮P1.4口上的灯
case 6: P1=0xdf;break;//当i的值为6时,点亮P1.5口上的灯
case 7: P1=0xbf;break;//当i的值为7时,点亮P1.6口上的灯
P1=0xfe;//当P3.4口上的开关按上了,那么就由用户使接在P1.0口上的灯亮。
else if((P3&0x20)==0)//和上面的一样,判断P3.5口上的开关是否按上了。
P1=0Xfd;//当P3.5口上的开关按上了,点亮接在P1.1口上的灯。
else if((P3&0x40)==0)//判断P3.6口的开关是否按上了。
TL1 = 0xF3;
PCON |= 0x80; //SMOD = 1,波特率加倍
SCON = 0x50; //允许发送接收
ES = 0; //禁止串口中断
TI = 1;
TR1 = 1;
}
任务1:控制LED小灯亮灭
1.流程图如下:
2.程序如下:
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
void main()//主函数
{
while(1)//while死循环
{
if((P3&0x10)==0)//判断P3口上的八位与00010000相与后是否等于0,若是,则P3.4口为低电平,也就是接在P3.4口上的开关按上了。
第二种(if嵌套):
#include <reg51.H>
#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char
void serial_init(void);
void main ()
{
uint i,c;
serial_init(i=1;i<11;i++)
{c=i*i;
if(i==1)
printf("%d\n",c);
else if(i==2)
printf("%d\n",c);
else if(i==3)
printf("%d\n",c);
else if(i==5)
printf("%d\n",c);
else if(i==6)
}
3.仿真结果如下:
4.仿真结果分析:
从仿真图以及程序可以看出,当P3.4口上的开关按下时,不管其它三个开关有没有按下,只有受P3.4口开关控制的那个灯(p1.0口上的灯)才亮,以此类推,当只有P3.7口上的开关按下时,P1.3口上的灯才亮,而其它灯不亮,因为控制其它灯的按键没有按下,接在其它灯的IO口处于高电平状态。
}
第三种(switch):
#include <reg51.H>
#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char
void serial_init(void);
void main ()
{
uint i,c;
serial_init();
任务二:循环点亮led小灯
1.流程图如下:
2.程序如下:
#include <reg51.H>
#define uint unsigned int
#define uchar unsigned char
void DelayMs(uint i)//延时子程序
{
uint j;
for(;i!=0;i--)
{
for(j=100;j!=0;j--);
任务三:用3种循环实现输出1~10的平方
第一种(for循环):
#include <reg51.H>
#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char
void serial_init(void);
void main ()
case 10: c=i*i;printf("%d\n",c);break;
default:break;
}
}
}
}
void serial_init(void) //串口初始化函数
{
TMOD = 0x20; //T1工作方式1,用于设定波特率
TH1 = 0xF3; //波特率4800Bps,12MHz晶振
{
uint i,c;
serial_init();
while(1)
{
for(i=1;i<11;i++)
{
c=i*i;
printf("%d\n",c);
}
}
}
void serial_init(void) //串口初始化函数
{
TMOD = 0x20; //T1工作方式1,用于设定波特率
TH1 = 0xF3; //波特率4800Bps,12MHz晶振
}
}
void Ledlight(uchar i)
{
switch(i)
{
case 1: P1=0xfe;break;//当i的值为1时,点亮P1.0口上的灯
case 2: P1=0xfd;break;//当i的值为2时,点亮P1.1口上的灯
case 3: P1=0xfb;break;//当i的值为3时,点亮P1.2口上的灯
case 8: P1=0x7f;break;//当i的值为8时,点亮P1.7口上的灯
default:break;
}
}
void main ()
{
uchar i;
while(1)
{
for(i=8;i>0;i--)
{
Ledlight(i);
DelayMs(100);
}
}
}
3.仿真结果如下:
4.仿真结果分析:由程序可知,利用开关分支语句实现小灯循环点亮,P1口一共接8个灯所以设置8个分支,当参数i=8时,选择第八个分支“case 8”即点亮P1.7口上的灯,然后判断i是否仍然大于0,是的话i自减1,再选择相应的分支点亮相对应的小灯实现循环点亮。
相关文档
最新文档