C语言循环控制语句概述、goto、while、do-while、for语句

1、循环控制语句概述
                 三种基本结构:顺序结构、选择结构、循环结构(当型循环结构,直到型循环结构)
循环结构:goto,while ,do-while,for
2、goto语句
无条件转向语句,用来跳转到某个程序位置进行执行。
一般形式
goto 语句标号;    //其中 语句标号是一个标识符(只能由字母,数字,下划线三种字符组成,且第一个字符必须是字母或者下划线,并且,标识符不可以是系统中的保留字,如:int)
goto lablel;
goto 123;
goto 语句的主要用途:
①.与if语句一起构成循环结构;
②.从循环体内跳转到循环体外,但是不推荐,破坏了结构化程序设计原则,除非万不得已。
注意:目前goto语句应用的场合比较少,很多情况下我们可以用其他的循环语句来取代goto;
          但是goto语句必须在同一个函数中,不能跨越函数使用。
int i=1,sum=0;
loop:
if(i<=100)
{
 sum=sum+i;
i++;
goto loop;   //表示跳转到loop位置执行
}
printf("%d\n",sum);
return 0;

3、while语句(当型循环结构)
一般形式:
while(表达式)  
要执行的语句(一条或者多条,有多条语句的时候就需要使用大括号)
特点:先判断表达式的值,如果表达式的值 为真,就 执行语句,同时如果表达式的值 为假,则循环体内的语句 一次也不执行
注意:
a、while中如果有多条要执行的语句,需要用{}扩上,整个{}中的内容才会被当作一个整体执行。
b、在循环体内,要有使用循环趋向于结束的语句。
#include<stdio.h>
int main()
{
int i=1,sum=0;
  while(i<=100)
  {
   sum=sum+i;
   i++; //本条就是使while循环趋向于结束的语句。
  }
printf("%d\n",sum);
return 0;
}

4、do-while语句(直到型循环结构)
  一般形式:
do {
    要执行的语句;
}while(表达式);
直到型循环结构与当型循环结构的区别:
当型循环结构:当条件表达式不满足时,循环体内的语句 一次也不执行
直到型循环结构至少执行一次循环体内的语句,然后才判断条件是否满足,如果满足,则继续执行循环体结构内的语句;一 直到条件为假(条件不满足时)则跳出循环。
结论:当while后边的表达式的 第一次为真时,两种循环得到的 结果相同,否则,两种循环的结果不相同。
#include<stdio.h>
int main()
{
     int i=1,sum=0;
     do{
       sum=sum+i;
       i++;
     }while(i<=100);
printf("%d\n",sum);
return 0;
}

5、for语句精解
一般形式:
for(表达式1;表达式2;表达式3)内嵌的语句;
执行过程:
a.先求解表达式1 的值;
b.再求解表达式2的值
b1、若表达式2的值为真(非0),则执行for语句中指定的内嵌语句,再求解表达式3的值( 就是内嵌语句和表达式3同时执行),反复循环步骤2,一直到表达式2的值为假。
b2、若表达式2的值为假(0),则整个for循环结束,程序流程跳转到for语句后边的语句去执行。
c.注意:表达式1的值只会被执行一次
for语句最简单也是最常用的引用形式:
for(循环变量赋初值;循环变量结束条件;循环变量增加值);
int i,sum=0;
for(i=1;i<=100;i++)   //称呼 i 为循环变量。
{
 sum=sum+i;
}
printf("%d\n",sum);

for语句的主要说明:
、表达式1可以省略,但其后边的不能省略,当表达式1省略时,应该在for之前就给循环变量赋予初值。写法比较罕见。
int i,sum=0;
i =1;
for(i<=100;i++)
{
 sum=sum+i;
}

表达式2可以省略,也就是不判断循环条件,那么循环就会无终止的执行下去了,此时,就必须用break语句终止循环。
int i,sum=0;
for(i=1;;i++)
{
 sum=sum+i;
if(i>=100)
break;
}

表达式3也可以省略,我们必须要想办法保证for循环能够正常结束,否则循环会无终止的进行下去。
int i,sum;
for(sum=0,i=1;i<=100;)    // 表达式1其实是个逗号表达式
{
 sum=sum+i;
i++;      // 保证for循环能够正常运行,把i++放在循环体内嵌语句中,而没有放在表达式3中
}

可以省略表达式1、表达式3,只保留表达式2
int i,sum;
sum=0;
i=1;    // 这里给i 赋初值相当于代替了后面的表达式1
for(;i<=100;)
{
 sum=sum+1;
 i++;     // 这里取代了上面表达式3
}

三个表达式都可以省略:不设置初值,不判断条件(认为条件一直为真),循环变量不增加。
导致一个无终止的执行循环体,一直执行其内嵌的语句。
for(;;;)
{
  // 这里会无限次执行,这种循环体要想终止,必须要在for内嵌语句中,根据一定的条件增加break来跳出for循环体。
}
int i,sum;
i=1;
sum=0;
for(;;;)
{
   sum=sum+i;
  if(i>=100)
  break;
  i++;
}

、表达式1可以设置循环变量初值,也可以是与循环变量无关的其他表达式;
int i,sum;
i=1;
for(sum=0;i<=100;i++)
{
 sum=sum+i;
}
printf("%d\n",sum);
、表达式1和表达式3都可以是简单的表达式或者逗号表达式,不常用,但是 表达式1 只会被执行一次,但是 表达式3被执行多次,循环多少次,表达式3就会被执行多少次!
int i,j=1000,sum;
for(sum=0,i=1;i<=100;i++,j--)
{
sum=sum+i;
}
printf("%d\n",sum);
printf("%d\n",j);   //结果应该是900、
、表达式2的值一般是关系表达式,或者是逻辑表达式,但只要其值为非0,就执行循环体。【用法太奇怪了】
int i,sum=0;
for(i=1;8888;i++)
{
 sum=sum+i;
if(i>=100)
break;
}
         printf("%d\n",sum);
总结:虽然for语句可以有多种花哨用法,但是建议大家,使用最传统的for语句用法:
int i;
for(i=0;i<=100;i++)  // 设置固定循环次数
{
 sum=sum+i;    // 设置执行语句
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值