C语言三种循环语句

合集下载

c语言的三种流程控制语句及语法格式

c语言的三种流程控制语句及语法格式

C语言是一种广泛应用的编程语言,其流程控制语句是编写程序中的重要部分。

流程控制语句用于控制程序的执行流程,包括顺序执行、条件执行和循环执行。

C语言中常用的流程控制语句主要包括顺序结构、选择结构和循环结构,下面将分别介绍它们的语法格式及使用方法。

1. 顺序结构顺序结构是程序中最简单的流程控制结构,也是最基本的结构。

顺序结构指的是按照代码的编写顺序依次执行,没有跳跃或分支。

在C语言中,顺序结构是程序的默认执行方式,没有特定的关键字或语法格式。

程序中的语句按照编写的顺序依次执行,直到程序结束。

例如:```cint m本人n() {int a = 1;int b = 2;int c = a + b;printf("The result is d\n", c);return 0;}```以上代码中的语句就是按照顺序依次执行的,没有条件判断或循环。

2. 选择结构选择结构是根据条件判断的结果决定程序执行的流程控制结构。

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

(1)if语句if语句用于根据条件判断的结果决定程序的执行流程。

其基本语法格式如下:```cif (condition) {// 当条件为真(非0)时执行此处的语句块} else {// 当条件为假(0)时执行此处的语句块}```在if语句中,condition代表一个表达式或逻辑判断,如果condition 的值为真(非0),则执行if后面的语句块;否则执行else后面的语句块。

例如:```cint score = 80;if (score >= 60) {printf("Pass\n");} else {printf("F本人l\n");}```以上代码中,根据score的值来判断是否及格,如果score大于等于60,则输出Pass,否则输出F本人l。

除了if和else关键字,还可以使用else if语句来实现多重条件判断:```cint score = 75;if (score >= 90) {printf("Excellent\n");} else if (score >= 80) {printf("Good\n");} else if (score >= 70) {printf("Average\n");} else {printf("F本人l\n");}```(2)switch语句switch语句也是一种选择结构,适用于有多个条件判断的情况。

C语言 第五章-循环结构程序设计

C语言 第五章-循环结构程序设计

执行过程如图所示。其中i为外循环的控制变 量,j为内循环的控制变量。
i =0 当 i <=10
j=0 当 j<=10
printf(“%d ”, i*j ) j++ i++
例4 编程打印“九九乘法表”。
分析:九九乘法表 1×1=1 1×2=2 1×3=3 … 2×1=2 2×2=4 2×3=6 … 3×1=3 3×2=6 3×3=9 … …… 9×1=9 9×2=18 9×3=27 …
i ++ ; } while ( i <= 100 ) ; printf ( " %d " , sum ) ; }
结果相同
同样是下列程序,但如果while后面的表达式结果一开始就是 假时,两种循环结果会不一样。
main ( ) /*程序1*/
{ int i , sum = 0 ; i = 101 ;
所以程序需要设计成二重循环。由于题目只 要求找到一组解,所以在循环过程中只要找到一组 满足条件的x, y, z就可以跳出循环。
跳出循环的方法可以采用break语句,但是, 因为是二重循环,所以要考虑使用break是否方便。
程序 百钱买百鸡问题。 void main ( ) { int x , y , z ;
打印第2行 ( i = 2 ) for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
…… 打印第9行 ( i = 9 )
for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/

c语言中常用的循环语句有几种,说出他们之间的异同

c语言中常用的循环语句有几种,说出他们之间的异同

c语言中常用的循环语句有几种,说出他们之间的异同在C语言中,常用的循环语句有三种:for循环、while循环和do-while循环。

1. for循环:for循环适用于循环次数已知的情况。

它由三个部分组成:循环变量的初始化、循环条件的判断和循环体内的语句执行。

for循环的执行流程是先执行初始化语句,然后判断循环条件,如果条件满足,则执行循环体内的语句,再执行步进语句,然后再次判断循环条件。

在执行过程中,可以通过改变循环变量的值来控制循环次数。

2. while循环:while循环适用于循环次数未知但循环条件已知的情况。

它只有一个循环条件,而没有特定的初始化和步进语句。

在执行过程中,先判断循环条件,如果条件满足,则执行循环体内的语句,再回到判断循环条件的步骤。

在循环体内需要手动改变循环条件,否则可能导致死循环。

3. do-while循环:do-while循环适用于至少执行一次循环体的情况。

它先执行循环体内的语句,然后再判断循环条件。

如果条件满足,则继续执行循环体内的语句,再次判断循环条件。

与while循环不同的是,do-while循环保证了循环体至少执行一次。

这三种循环语句之间的异同点如下:1.初始化和步进语句:for循环中有明确的初始化和步进语句,适用于循环次数已知的情况;而while循环和do-while循环没有特定的初始化和步进语句,适用于循环次数未知的情况或至少执行一次循环体的情况。

2.循环条件的位置:for循环和while循环的循环条件在循环体外进行判断,因此在初次判断循环条件时可能不会执行循环体内的语句;而do-while循环的循环条件在循环体内进行判断,因此在初次判断循环条件时一定会执行循环体内的语句至少一次。

3.使用场景:for循环适用于循环次数已知的场景;while循环和do-while循环适用于循环次数未知或至少执行一次循环体的场景。

另外,在C语言中还有一种特殊的循环语句,即无限循环语句。

c语言中dowhile语句例子

c语言中dowhile语句例子

C语言中do…while语句例子1. 了解do…while语句的基本概念在C语言中,do…while语句是一种循环语句,用于执行一段程序代码直到指定的条件不再满足。

与while语句不同的是,do…while语句是先执行一次循环体的代码,然后再检查循环条件是否满足。

无论条件是否成立,do…while循环中的代码至少会执行一次。

2. 示例1:计算1到10的和下面是一个使用do…while语句来计算1到10的和的示例代码:```c#include <stdio.h>int m本人n() {int sum = 0;int i = 1;do {sum += i;i++;} while (i <= 10);printf("1到10的和为:d\n", sum);return 0;}```在这个示例中,首先声明了两个变量sum和i,分别用于保存和的结果和作为计数器。

接着使用do…while语句来进行累加操作,直到i 的值大于10为止。

最后输出计算结果。

3. 示例2:输入密码进行验证下面是一个使用do…while语句来进行密码验证的示例代码:```c#include <stdio.h>int m本人n() {int password = xxx;int input;do {printf("请输入密码:");scanf("d", input);} while (input != password);printf("密码正确,欢迎进入系统!\n");return 0;}```在这个示例中,首先声明了一个变量password用于保存正确密码的值,然后使用do…while语句进行密码输入和验证的操作。

当输入的密码不等于正确密码时,会一直提示用户重新输入密码,直到输入正确为止。

4. 结论通过以上两个示例,我们可以看到do…while语句的灵活性和实用性。

C语言程序设计:第5章 循环结构

C语言程序设计:第5章 循环结构
执行过程: 先执行循环体语句,再检查 循环条件表达式的值是否为真, 如果为真则继续执行循环体语句, 否则结束循环。
12
do...while语句(cont...)
课堂练习: 1.输出1---n之间的数,其中n从键盘输入。
int main(void) {
//1.定义变量i和n //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:输出i的值 return 0; }
} 相当于 while(1) {
}
26
小结
❖for(i=m;i<n;i++)//循环次数:n-m次 ❖for(i=m;i<=n;i++)//循环次数:n-m+1次
27
循环语句的练习
课堂练习: 1.输出n---1之间的数,其中n>1且n从键盘输入。 2.计算1*2*3*...*n的值(n的阶乘n!), 其中n从键盘输入。 3.计算10- 1/2 - 1/3 -....1/n的值 以上练习分别以while、do...while、for语句实现
int main(void) {
//1.定义变量i,n,sum //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:累加i的值 //7.输出计算结果 return 0; }
24
for语句(cont...)
{
sum = sum + i;
if(sum > 100)break;

C语言讲课-while循环结构课件

C语言讲课-while循环结构课件
输入:1
输入:101=0
输出:
sum=101
此程序的功能?
什么情况下两者结果相同?
二、do-while语句
5.3 for语句
语句一般格式 for (表达式1;表达式2;表达式3) 语句
功能:计算表达式1的值,再判断表达式2,如果其值为非0(逻辑真),则执行内嵌语句(循环体),并计算表达式3;之后再去判断表达式2,一直到其值为0时结束循环,执行后续语句。
?
-3
do-while语句
语句一般格式 do 语句 while (表达式); 功能:先执行内嵌语句(循环体),之后计算表达式的值,不为0(逻辑真)时,再执行循环体并判断条件,直到表达式的值为 0 结束循环,转去执行while下面的语句。
do-while循环的算法

2
)直到型循环(
while循环控制结构
假设一张报纸厚0.1毫米,将报纸从中间对折多少次后,报纸高度会超过珠穆朗玛峰?
#include <stdio.h>void main( ){ float t=0.0001; int n=0; while(t<=8844) { t=t*2; n++; } printf(“ %d\n”,n);}
while循环控制结构
假设一张报纸厚0.1毫米,将报纸从中间对折,报纸会有多厚?
#include <stdio.h>void main( ){ float t=0.0001; t=t*2; printf(“ %f”,t);}
while循环控制结构
假设一张报纸厚0.1毫米,将报纸从中间对折,报纸会有多厚?
学习内容
循环结构的引入
C语言提供了三种循环控制语句,构成了三种基本的循环结构:while语句构成的循环结构do-while语句构成的循环结构for语句构成的循环结构

《C语言程序设计课件》第四章-循环语句

《C语言程序设计课件》第四章-循环语句
scanf("&d",&n); while(n!=0)
{ sum+=n; scanf("%d",&n); }
printf("The sum is :%d\n",sum);
return 0; }
从任意 n 个实数中选出最大数 和最小数
从任意 n 个实数中选出最大数和最小数
#include <stdio.h> int main( ) {
/*程序4-1*/ #include <stdio.h> int main() {
int i,sum=0; i=1; while(i<=100) {
sum += i; i++; } printf("sum=%d\n",sum); return 0; }
【例4-2】输入一行字符以回车键结束,分别 统计出其中英文字母、空格、数字和其它字符 的个数。
#include <stdio.h> int main( ) {
int i,n;
printf("This program prints a table of squares.\n"); printf("Enter number of entries in table:");
scanf("%d",&n); i=1; while (i<=n)
【例】求整数1~100的累加和,使用for语句实 现。
#include <stdio.h> int main() {
int i,sum=0; for(i=1;i<=100;i++)

c语言程序的三种基本结构

c语言程序的三种基本结构

c语言程序的三种基本结构C语言是一种广泛应用于软件开发和系统编程的高级编程语言。

它的设计目标是提供一种简洁、高效且可移植的编程语言,以便开发者能够通过代码实现复杂的功能。

在C语言中,有三种基本的程序结构,它们分别是顺序结构、选择结构和循环结构。

下面将对这三种结构进行详细的介绍。

一、顺序结构顺序结构是指程序按照指定的顺序逐行执行,每一行代码都会依次执行,直到程序结束。

这种结构特别适用于那些不需要有条件或循环的简单程序。

下面是一个使用顺序结构的C语言程序示例:```c#include <stdio.h>int main() {printf("Hello, World!\n"); // 第一行代码printf("This is a C program."); // 第二行代码return 0;}```在上面的示例中,程序按照从上到下的顺序依次执行两行代码,输出结果为:```Hello, World!This is a C program.```二、选择结构选择结构是根据条件的真假来决定具体执行的代码块。

在C语言中,常用的选择结构有if语句和switch语句。

1. if语句if语句根据条件的真假来判断是否执行相应的代码块。

常见的if语句有以下几种形式:- 单个if语句:```cif (条件) {// 如果条件为真,执行这里的代码}```- if-else语句:```cif (条件) {// 如果条件为真,执行这里的代码} else {// 如果条件为假,执行这里的代码}```- if-else if-else语句:```cif (条件1) {// 如果条件1为真,执行这里的代码} else if (条件2) {// 如果条件2为真,执行这里的代码} else {// 如果条件1和条件2都为假,执行这里的代码}```2. switch语句switch语句根据表达式的值来选择要执行的代码块。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三种基本的循环语句: for语句、while语句和do-while语句。

一、循环语句(一)、for循环它的一般形式为:for(<初始化>;<条件表过式>;<增量>)语句;初始化总是一个赋值语句,它用来给循环控制变量赋初值;条件表达式是一个关系表达式,它决定什么时候退出循环;增量定义循环控制变量每循环一次后按什么方式变化。

这三个部分之间用;分开。

例如:for(i=1;i<=10;i++)语句;上例中先给i赋初值1,判断i是否小于等于10,若是则执行语句,之后值增加1。

再重新判断,直到条件为假,即i>10时,结束循环。

注意:(1).for循环中语句可以为语句体,但要用{和}将参加循环的语句括起来。

(2).for循环中的初始化、条件表达式和增量都是选择项,即可以缺省,但;不能缺省。

省略了初始化,表示不对循环控制变量赋初值。

省略了条件表达式,则不做其它处理时便成为死循环。

省略了增量,则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制变量的语句。

(3).for循环可以有多层嵌套。

例如:for(;;) 语句;for(i=1;;i+=2) 语句;for(j=5;;) 语句;这些for循环语句都是正确的。

main(){int i,j;printf(i j\n);for(i=0;i<2;i++)for(j=0;j<3;j++)printf(%d %d\n,i,j);}输出结果为:i j0 00 10 21 01 11 2用for循环求1+2+……+100的和:main(){int sn=0,i;for(i=1;i<=100;i++)sn+=i; /*1+2+……+100*/printf(%d\n,sn);}从程序可以看出,使用循环语句可以大大简化代码。

(二)、while循环它的一般形式为:while(条件)语句;while循环表示当条件为真时,便执行语句。

直到条件为假才结束循环。

并继续执行循环程序外的后续语句。

例如:#include stdio.hmain(){char c;c='\0'; /*初始化c*/while(c!='\n') /*回车结束循环*/c=getche(); /*带回显的从键盘接收字符*/}上例中,while循环是以检查c是否为回车符开始,因其事先被初始化为空,所以条件为真,进入循环等待键盘输入字符;一旦输入回车,则c='\n',条件为假,循环便告结束。

与for循环一样,while循环总是在循环的头部检验条件,这就意味着循环可能什么也不执行就退出。

注意:(1).在while循环体内也允许空语句。

例如:while((c=getche())!='\n');这个循环直到键入回车为止。

(2).可以有多层循环嵌套。

(3).语句可以是语句体, 此时必须用{和}括起来。

用while循环求1+2+……+100的和:main(){int sn=0,i=0;while(++i<=100)sn+=i; /*求1+2+……+100*/printf(%d\n,sn);}(三)、do--while循环它的一般格式为:do{语句块;}while(条件);这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环。

因此,do-while循环至少要执行一次循环语句。

同样当有许多语句参加循环时,要用{和}把它们括起来。

用do--while循环求1+2+……+100的和:main(){int sn=0,i=1;dosn+=i; /*求1+2+……+100*/while(++i<=100);printf(%d\n,sn);}从上面三个程序看出,使用for,while和do--while求解同样的问题,基本思路都差不多,只是在第一次计算时,注意初值。

二、循环控制(一)、break语句break语句通常用在循环语句和开关语句中。

当break用于开关语句switch中时,可使程序跳出switch而执行switch 以后的语句;如果没有break语句,则将成为一个死循环而无法退出。

break在switch中的用法已在前面介绍开关语句时的例子中碰到,这里不再举例。

当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起。

即满足条件时便跳出循环。

例如:main(){int sn=0,i;for(i=1;i<=100;i++){if(i==51) break; /*如果i等于51,则跳出循环*/sn+=i; /*1+2+……+50*/}printf(%d\n,sn);}可以看出,最终的结果是1+2+……+50。

因为在i等于51的时候,就跳出循环了。

自己写写怎样在while和do--while 循环中增加break语句。

注意:1. break语句对if-else的条件语句不起作用。

2. 在多层循环中,一个break语句只向外跳一层。

例如:main(){int i,j;printf(i j\n);for(i=0;i<2;i++)for(j=0;j<3;j++){if(j==2) break;printf(%d %d\n,i,j);}}输出结果为:i j0 00 11 01 1当i==0,j==2时,执行break语句,跳出到外层的循环,i 变为1。

(二)、continue语句continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。

continue语句只用在for、while、do-while等循环体中, 常与if条件语句一起使用,用来加速循环。

例如:main(){int sn=0,i;for(i=1;i<=100;i++){if(i==51) continue; /*如果i等于51,则结束本次循环*/sn+=i; /*1+2+……+50+52+……+100*/}printf(%d\n,sn);}从程序中可以看出,continue语句只是当前的值没有执行,也就是说当前的值跳过去了,接着执行下次循环。

main(){int i,j;printf(i j\n);for(i=0;i<2;i++)for(j=0;j<3;j++){if(j==1) continue;printf(%d %d\n,i,j);}}输出结果为:i j0 00 21 01 2(三)、goto语句goto语句是一种无条件转移语句,与BASIC中的goto语句相似。

goto语句的使用格式为:goto 标号;其中标号是Turbo C 2.0中一个有效的标识符,这个标识符加上一个:一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。

标号既然是一个标识符,也就要满足标识符的命名规则。

另外标号必须与goto 语句同处于一个函数中,但可以不在一个循环层中。

通常goto语句与if条件语句连用,当满足某一条件时,程序跳到标号处运行。

goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在多层嵌套退出时,用goto语句则比较合理。

main(){int sn=0,i;for(i=1;i<=100;i++){if(i==51) goto loop; /*如果i等于51,则跳出循环*/ sn+=i; /*1+2+……+50*/}loop: ;printf(%d\n,sn);}可以看出,这儿的goto语句和break作用很类似。

这儿的loop: ;printf(%d\n,sn);也可以写成loop: printf(%d\n,sn);main(){int sn=0,i;for(i=1;i<=100;i++){if(i==51) goto loop; /*如果i等于51,则跳出本次循环*/sn+=i; /*1+2+……+50+52+……+100*/loop: ;}printf(%d\n,sn);}可以看出这儿的loop语句和continue的作用类似。

但是某些情况下又必须使用goto语句,否则会让程序大大臃肿。

如:main(){int i,j,k;printf(i j k\n);for(i=0;i<2;i++)for(j=0;j<3;j++)for(k=0;k<3;k++){if(k==2) goto loop;printf(%d %d %d\n,i,j,k);}loop: ;}输出结果为:i j k0 0 00 0 1如果不使用goto语句,而使用break,continue语句,应该这样main(){int i,j,k;printf(i j\n);for(i=0;i<2;i++){for(j=0;j<3;j++){for(k=0;k<3;k++){if(k==2) break;printf(%d %d %d\n,i,j,k);}if(k==2) break;}if(k==2) break;}}输出结果为:i j k0 0 00 0 1所以在同时跳出多层循环时,应该使用goto语句。

记住,所有的goto语句其实都是可以用break,continue代替的。

下面举几个例子:1.求两个整数的最大公约数。

例如10和15的最大公约数是5。

分析:最大公约数一定小于等于最小的那个数一半,同时能被两数整除。

main(){int num1,num2,i,min;scanf(%d%d,&num1,&num2);min=num1for(i=min/2;i>0;i--)if(num1%i==0&&num2%i==0) break;printf(最大公约数为%d\n,i);}2.求1!+2!+……+n!(n<10)main(){int n,i;long temp=1,sn=0; /*从9!以后,所得的值就超过了int范围*/scanf(%d,&n);for(i=1;i<=n;i++){temp*=i;sn+=temp; /*如果没有这一步,求的就是n!*/}printf(%ld\n,sn);}那么想想,如果求1!+3!+5!+……+n!应该怎么办?3.判断一个整数是不是素数(素数就是只能被本身和1整除的数)。

#include math.hmain(){int num,i,flag=0;scanf(%d,&num);for(i=2;i{flag=0; /*标志变量复位*/if(num%i==0){flag=1;break;}}if(flag==0) printf(是素数\n);else printf(不是素数\n);}可以说,在所有的C语言书上,都有判断素数的例题。

相关文档
最新文档