c语言第五章循环结构答案,C语言 第五章 循环结构(示例代码)

一、for

请在屏幕上输出1000个*号

printf("*************************....");

fz.gif

#include "stdio.h"

void main()

{

int i;

for(i=1;i<=1000;i++){

printf("*");

}

}

fz.gif

20180111003157938227.png

for(表达式A;表达式B;表达式C)

{

要重复执行的代码块D;

}

1、表达式A先执行,且只执行一次

2、表达式B再执行,如果为真则执行代码块D

3、再执行表达式C,再选择表达式B,回到第2步

4、ABCD都可以省去 for(;i>=100;);

5、表达式1通常用来给循环变量赋初值,一般是赋值表达式i=1  i=-1,j=100

6、表达式2通常是循环条件,一般为关系表达式或逻辑表达式i>=5 i>5&&j<=8

7、表达式3通常可用来修改循环变量的值,一般是复合赋值语句i++,i--,  i+=5,j++

8、这三个表达式都可以是逗号表达式,即每个表达式都可由多个表达式组成。三个表达式都是任选项,都可以省略。

fz.gif

#include "stdio.h"

void main()

{

int i,j;

for(i=1;i<=10;i++)

{

printf("%d \n",i);

}

}

fz.gif

20180111003157941157.png

fz.gif

#include "stdio.h"

void main()

{

int i,j;

for(i=-10;i<=10;i++)

{

printf("%d \n",i);

}

}

fz.gif

20180111003157946040.png

fz.gif

#include "stdio.h"

void main()

{

int i,j;

for(i=1;i<=10;i=i+3)

{

printf("%d \n",i);

}

}

fz.gif

20180111003157949946.png

fz.gif

#include "stdio.h"

void main()

{

int i,j;

for(i=10;i>0;i--)

{

printf("%d \n",i);

}

}

fz.gif

20180111003157951900.png

fz.gif

#include "stdio.h"

void main()

{

int i,j;

for(i=10,j=1;i>0;i--,j++)

{

printf("%d + %d = 11 \n",i,j);

}

}

fz.gif

20180111003157953853.png

fz.gif

#include "stdio.h"

void main()

{

int i=1;

for(;i<=10;i++)

{

printf("\n %d",i);

}

}

fz.gif

fz.gif

#include "stdio.h"

void main()

{

int i=1;

for(;i<=10;)

{

printf("\n %d",i);

i++;

}

}

fz.gif

fz.gif

#include "stdio.h"

void main()

{

int i=1;

for(;;)

{

printf("\n %d",i);

i++;

if(i>10)break;

}

}

fz.gif

20180111003157958736.png

for语句中的各表达式都可省略,但分号间隔符不能少。如:

for(;表达式;表达式)省去了表达式1。

for(表达式;;表达式)省去了表达式2。

for(表达式;表达式;)省去了表达式3。

for(;;)省去了全部表达式。

在循环变量已赋初值时,可省去表达式1,如省去表达式2或表达式3则将造成无限循环, 这时应在循环体内设法结束循环。

循环体(要重复的语句)可以是空语句。

练习:计算出1-100之间奇数之和。1+3+5+7....99=?

fz.gif

#include "stdio.h"

void main()

{

//练习:计算出1-100之间奇数之和。1+3+5+7....99=?

int i,s=0;

for(i=1;i<=100;i++)

{

if(i%2==1){

s=s+i;

}

}

printf("结果:%d",s);

}

fz.gif

2500

fz.gif

#include "stdio.h"

void main()

{

//练习:计算出1-100之间奇数之和。1+3+5+7....99=?

int i,s=0;

for(i=1;i<=100;i=i+2)

{

s=s+i;

}

printf("结果:%d",s);

}

fz.gif

2500

二、while

while语句的一般形式为:

初值;

while(表达式A)

{

表达式的值为真时要重复的语句块;B

步长;

}

其中表达式是循环条件

要重复的语句块和步长都为循环体

while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句。

1、程序先判断A是否为真,如果为真则执行循环体B

2、当执行完循环体后再回到第1步

3、当表达式A为假时结束循环

fz.gif

#include "stdio.h"

void main()

{

int i=1;

while(i<=10)

{

printf("%d \n",i);

i=i+1;

}

}

fz.gif

20180111003157960689.png

while语句中的表达式一般是关系表达或逻辑表达式,只要表达式的值为真(非0)即可继续循环

循环体如包括有一个以上的语句,则必须用{}括起来, 组成复合语句。

应注意循环条件的选择以避免死循环。

练习:

练习:计算出1-100之间奇数之和。1+3+5+7....99=?

fz.gif

/* Note:Your choice is C IDE */

#include "stdio.h"

void main()

{

int i=1,s=0;

while(i<=100)

{

s=s+i;

i=i+2;

}

printf("s=%d",s);

}

fz.gif

2500

练习:列出1-1000之间所有能同时被3与7整除的数。

三、do while

do-while语句的一般形式为:

do

{

要重复的语句块;

}while(表达式);

其中“要重复的语句块”是循环体

表达式是循环条件

语义是:先执行循环体语句一次,再判断表达式的值,若为真(非0)则继续循环,否则终止循环。

fz.gif

/* Note:Your choice is C IDE */

#include "stdio.h"

void main()

{

int i=1,s=0;

do

{

s=s+i;

i++;

}while(i<=5);

printf("%d",s);

}

//i=1 2 3 4 5 6

//s=0 1 3 6 10 15

fz.gif

15

适用于必须要执行一次的应用,如输入一个合格的数字。

fz.gif

#include "stdio.h"

void main()

{

int n;

do

{

printf("请输入1-7之间的数:");

scanf("%d",&n);

}while(n<1||n>7);

}

fz.gif

20180111003157966549.png

四、continue

在for,while,do-while中遇到continue表示结束当次循环,继续下次循环。

fz.gif

#include "stdio.h"

void main()

{

int i;

for(i=1;i<=10;i++)

{

printf("●");

printf("□");

}

}

fz.gif

20180111003157968502.png

fz.gif

#include "stdio.h"

void main()

{

int i;

for(i=1;i<=5;i++)

{

if(i%2==0)

{

continue; //结束当次,继续下一次

}

printf("□");

}

//i=1 2 3 4 5 6

□□□

}

fz.gif

20180111003157972408.png

五、break

在for,while,do-while,switch中遇到break跳出当前循环。

fz.gif

#include "stdio.h"

void main()

{

int i;

for(i=1;i<=5;i++)

{

if(i%2==0)

{

break; //结束当前循环

}

printf("□");

}

}

fz.gif

在无条件循环中退出

fz.gif

#include "stdio.h"

void main()

{

int i=1,s=0;

while(1)

{

s=s+i;

i++;

if(i>100) break;

}

printf("%d",s);

}

fz.gif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值