什么是C语言循环控制语句介绍
C语言循环控制语句是一个基于C语言的编程语句,该语句主要有while循环语句、do-while循环语句和for循环语句来实现循环结构。
在C语言程序中,一共有三种程序结构:顺序结构、选择结构(分支结构)、循环结构;顺序结构,从头到尾一句接着一句的执行下来,直到执行完最后一句;选择结构,到某个节点后,会根据一次判断的结果来决定之后向哪一个分支方向执行; 循环结构,循环结构有一个循环体,循环体里是一段代码。对于循环结构来说,关键在于根据判断的结果,来决定循环体执行多少次。C语言循环控制语句是一个基于C语言的编程语句,该语句主要有while循环语句、do-while循环语句和for循环语句来实现循环结构。
C语言循环控制语句循环语句
一般形式如下:
while(表达式)
语句;
其中执行过程如下:
(1)计算while后面括号里表达式的值,若其结果非0,则转入
(2),否则转(3)
(2)执行循环体,转
(1)
(3)退出循环,执行循环体下面的语句。
由于是先执行判断后执行循环体,所以循环体可能一次都不执行。
循环体可以为空语句“;”。
C语言循环控制语句do-while语句
一般形式如下:
do
语句;
while(表达式);
(1)执行循环体,转
(2)
(2)计算while后面括号里表达式的值,若其结果非0,则转入
(1),否则转(3)
(3)退出循环,执行循环体下面的语句。
注意:do……while语句最后的分号(;)不可少,否则提示出错。循环体至少执行一次。
C语言循环控制语句for语句
for语句是循环控制结构中使用最广泛的一种循环控制语句,特别适合已知循环次数的情况。
一般形式如下:
for ( ; ; )
语句
其中:
表达式1:一般为赋值表达式,给控制变量赋初值;
表达式2:关系表达式或逻辑表达式,循环控制条件;
表达式3:一般为赋值表达式,给控制变量增量或减量;
语句:循环体,当有多条语句时,必须使用复合语句。
其执行过程如下:首先计算表达式1,然后计算表达式 2。若表达式2为真,则执行循环体;否则,退出 for循环,执行for循环后的语句。如果执行了循环体,则循环体每执行一次,都计算表达式3,然后重新计算表达式2,依此循环,直至表达式 2的值为假,退出循环。
for语句的三个表达式都是可以省略的,但分号“;”绝对不能省略。for语句有以下几种格式:
(1)for(; 语句;
(2)for(;表达式2;表达式3 ) 语句;
(3)for(表达式1;表达式2;) 语句;
(4)for(i=1,j = n; i < j; i ++,j - - ) 语句;
C语言循环控制语句三种语句比较
同一个问题,往往既可以用 while语句解决,也可以用 do-while或者for语句来解决,但在实际应用中,应根据具体情况来选用不同的循环语句。选用的一般原则是:
(1) 如果循环次数在执行循环体之前就已确定,一般用 for语句。如果循环次数是由循环体的执行情况确定的,一般用 while语句或者do- while语句。
(2) 当循环体至少执行一次时,用 do-while语句,反之,如果循环体可能一次也不执行,则选用while语句。
C++/C循环语句中,for语句使用频率最高,while语句其次,do语句很少用。
三种循环语句for、while、do-while可以互相嵌套自由组合。但要注意的是,各循环必须完整,相互之间绝不允许交叉。
C语言循环控制语句其他循环语句
多重循环结构
在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨越循环层的次数。
一个循环体内又包含另一个完整的循环结构
三种循环可互相嵌套,层数不限
外层循环可包含两个以上内循环,但不能相互交叉
C语言循环控制语句c循环举例
这里使用c语言中的for循环。添加了九九乘法表查询、每天存钱问题、猴子吃桃问题、百钱买百鸡。
#include
void main()
{
float x,y,z,a,b,c,d,i,n,sum;int m;char yn;
system (\"graftable 936\");
yn=\'y\';
while(yn==\'y\' )
{
clrscr ();
printf(\" 欢迎使用 n\");
printf(\"请按提示操作,谢谢!n\");
printf(\"九九乘法表查询请按1n\");
printf(\"每天存钱问题请按2n\");
printf(\"猴子吃桃问题请按3n\");
printf(\"一分数序列课本请按4n\");
printf(\"百钱买百鸡请按5n\");
m=getch();
switch(m)
{case \'1\':
{
for (a=1;a<=9;a++)
{for (b=1;b<=a;b++)
printf(\"%.0f*%.0f=%2.0ft\",a,b,a*b);
printf(\"n\");
}
break;}
case \'2\':
{
a=1,sum=0;
for(i=1;i<31;i++)
{sum=sum+a;
printf(\"第%2.0f天收益%20.0f分钱t\",i,sum);
a=2*a;
}
break;}
case \'3\':
{
b=1;
for(i=1;i<10;i++)
b=2*(b+1);
printf(\"猴子吃桃问题:\");
printf(\"第一天摘桃子的个数为%.0f个n\",b);
break;}
case \'4\':
{ a=2,b=1, sum=0;
for(i=1;i<=20;i++)
{ n=(1.0*a)/b; c=a; a=a+b; b=c; sum=sum+n; }
printf(\"2/1,3/2,5/3...最后结果%fn\",sum);
break;}
case \'5\':
{
for(a=1;a<=20;a++)
for(b=1;b<=33;b++)
for(c=3;c<=99;c=c+3)
if((5*a+3*b+c/3==100)&&(a+b+c==100))
printf(\"公鸡=%.0f,母鸡=%.0f,小鸡=%.0fn\",a,b,c);
break;}
}
fflush(stdin);
printf(\"请选择继续y或者离开nn\");
yn=getch();
}
}