do语句改写为while语句

2021-08-12 改写

  do语句能够改写为while语句

  C语言while、do-while、for循环课程5

  课程3中,提到C语言基本语句分为:数据定义语句,数据处理语句

  数据处理语句又可分为:表达式语句,函数调用语句,空语句(;),复合语句,流程控制语句。

  流程控制:指程序代码执行的顺序。流程的分类:顺序、选择、循环。

  C语言的循环结构通过三种语句来实现,即while、do-while、forWhile语句的一般形式while(循环条件表达式)循环体语句;

  功能:当循环条件表达式为真,执行循环体语句,执行完了,再判断条件表达式是否为真,为真,则再执行,直到条件表达式为假时,退出while循环。

  实例1:用while语句求1~100的累加和。

  #include//C语言编译预处理命令,文件包含为stdio.h

  voidmain()//至少有一个用main()命名的主函数,返回值为void无值类型{

  inti=1,sum=0;/*初始化循环,定义变量i和累加器sum,定义和之前,累加器清零*/

  while(i<=100)

  {

  sum+=i;//sum+=i是一个复合赋值运算符,等价于sun=sun+i;i++;

  }

  printf("1+2+3+...+100=%d ",sum);//输出十进制数,1加到100累加器的和}

  MicrosoftVisualC++6.0运行结果

  使用while循环时,一定要对循环条件表达式中出现的变量提前赋值,并在循环体内修改有关变量的值,以使循环能趋于终止。

  While循环为当型循环,do-while循环也叫直到型循环。

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

  do

  {

  循环体语句}while(

  循环条件表达式

  )

  实例2:用do-while编制一个求n!的程序,n的值由键盘输入。

  #include

  voidmain()

  {inti=1,n,p=1;

  printf("请从键盘输入一个数,进行连乘积: ");

  scanf("%d",&n);

  do

  {p=p*i;

  i++;

  }while(i<=n);

  printf("连乘积的结果为p=n!:%d ",p);

  }

  分析:此程序,先定义三个变量i、n、p,p从p乘1开始执行,再i进行自增1,循环体中的语句执行完毕后,判断while的循环条件表达式,当i自增1为2时,看2是否<=输入的n值,若为真,则继续返回do循环,直到i自增的值比n大,则退出循环。

  do-while主要用于人机交互,do-while循环是先执行后判断,do里面的循环体至少被执行一次。区别于while是先判断循环条件表达式,后执行。

  for循环也叫步长型循环

  一般格式:for(表达式1;表达式2;表达式3)循环体语句;

  功能:先执行表达式1,再执行表达式2,如果表达式2的值为真,就执行循环体语句,最后执行表达式3.完成一次循环后,从表达式2执行,直到表达式2为假,退出循环。

  实例3:参考实例1,用while求1~100的累加和,现在用for语句求1~100的累

  加和。

  #include

  intmain(void)

  {

  inti;intsum=0;

  /*初始化循环,定义变量i

  和累加器sum,定义和之前,累加器清零*/

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

  {

  sum=sum+i;

  }

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

  return0;

  }

  实例4:爱因斯坦的阶梯问题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请问该阶梯至少有多少阶。编写一个C程序解决该问题。

  #include

  main()

  {intx;

  for(x=7;;x+=7)

  if(x%3==2&&x%5==4&&x%6==5)

  break;

  printf("Thenumberoftheladdersis:%d ",x);

  }

  分析:发现x一定是7的整数倍,可以依次递增地求出7的整数倍的值(7*1、7*2、7*3……),每求出一值,就用该值与2、3、5、6进行取模运算,最先得到的满足上述5个方程式的x值即为本题的答案。

  用while语句,简单快速实现爱因斯坦的阶梯问题

  #include

  intmain()

  {

  inti=1;/*i为所设的阶梯数*/

  while(!((i%2==1)&&(i%3==2)&&(i%5==4)&&(i%6==5)&&(i%7==0)))

  ++i;/*满足一组同余式的判别*/

【do语句改写为while语句】相关文章:

do语句能够改写为语句练习03-31

关于改写语句汇总03-30

英语句型改写规则与练习04-01

改写拟人句练习语句08-19

高二英语句子改写复习题目及答案03-20

牧童为学改写07-11

改写天净沙秋思为作文08-15

改写古诗《浣溪沙》为作文07-17

改写《木兰诗》为小说01-06