C语言--6.循环语句以及break与continue

在c语言中具有三种循环语句,循环语句的存在可以大大降低我们编程的复杂性,三种循环语句用以应对不同的情况,但也是大同小异

下面来让我们 一起了解一下C语言中的for,while,do while三种循环语句吧!

首先明确的一点是:任何一个正常的循环语句(死循环除外)都具有1.条件初始化 2.条件判定 3.条件更新

while循环

while循环的使用方式:当while(条件)内中的条件满足时,将会重复不断地执行while语句,直到(条件)不满足条件,才退出循环

//while 语法结构
while(表达式){
 循环语句;
}

值得注意的是,当执行一个while循环时,并非先执行while循环,而是先执行括号中的表达式,通过表达式的判定得到真或者假,为真(!=0)则执行语句,为假(==0)则跳过循环语句执行接下来的代码

在我们更为全面的认识while循环之前,我们先来介绍C语言中较为重要的两个关键字,break与continue

break关键字

break字面意思可以理解为跳出循环

continue关键字

continue字面意思可以理解为跳过本次循环

int main(){
   int a =10;
   while(a>=0){
   printf("%d",a);//输出结果为10 9 8 7 6 5 4 3 2 1 0
    a--;
}
*******************
int main(){
   int a =10;
   while(a>=0){
   printf("%d",a);//输出结果为10 9 8 7 6 5 break
   if(a==5){
      printf("break\n")
      break;
   } 
    a--;
}
*******************
int main(){
   int a =10;
   while(a>=0){
   printf("%d",a);//输出结果为 10 9 8 7 6 5......死循环(因为continue是结束本轮循环,跳
   //到while(a>=0)时的条件判定,将continue后续的代码都不执行,所以不会执行a--语句,一直卡在了
   //5这里)
   if(a==5){
      continue;
   } 
    a--;
}
*******************
int main(){
   int a =10;
   while(a>=0){
   if(a==5){
      a--;//将a--移动到continue之前,当continue执行时就跳过了5 
      continue;
   }
   printf("%d",a);//输出结果为 10 9 8 7 6 4 3 2 1 0
   a--;//外层条件更新 
}

for循环

for(表达式1;表达式2;表达式3)
 循环语句;

将上述例子改为for循环

int main(){
   int a =0;
   for(a = 10; a> = 0; a--){//输出结果为10 9 8 7 6 5 4 3 2 1 0
      printf("%d\n",a);
   }
**************************************
int main(){
   int a =0;
   for(a = 10; a> = 0; a--){//输出结果为10 9 8 7 6 
      if(a==5){
         break;
      }
      printf("%d\n",a);
   }
***************************************
int main(){
   int a =0;
   for(a = 10; a> = 0; a--){//输出结果为10 9 8 7 6 4 3 2 1 0
      if(a==5){
         continue;
      }
      printf("%d\n",a);
   }

不难发现,在使用continue时用for循环会方便很多,这是因为continue在跳出本次循环时跳到的位置是条件判定(for是条件更新),for循环的条件判定和条件更新在一起,所以不会跳过条件更新,而while语句中条件判定和条件更新是分离的,所以很容易造成continue跳过了条件更新,进而形成死循环

for语句的循环控制变量

建议:

1. 不可在 for 循环体内修改循环变量,防止 for 循环失去控制。
2. 建议 for 语句的循环控制变量的取值采用 前闭后开区间 写法。

do while循环

do
 循环语句;
while(表达式);//分号不能忘

do while 循环跟其他两种循环一样,也都具有条件初始化,条件判断,条件更新这三个部分,但是他和其他两个最大的区别就在于do while语句条件的判断在循环的最后,这就导致了不论是否满足条件,在进入do while循环之后都至少进行一次循环语句的执行

#include <stdio.h>
int main()
{
 int i = 10;
 do
 {
 printf("%d\n", i);//输出结果为
 i--;
 }while(i>=0);
 return 0; }
*********************************
#include <stdio.h>
int main()
{
 int i = 10;
 do
 {
  if(a==5){
 printf("%d\n", i);//输出结果为10 9 8 7 6 5
    a--;
   break;
 }
 i--;
 }while(i>=0);
 return 0; }
******************************
#include <stdio.h>
int main()
{
 int i = 10;
 do
 {
  if(a==5){
 printf("%d\n", i);//输出结果为10 9 8 7 6 4 3 2 1 0
    a--;
   continue;
 }
 i--;
 }while(i>=0);
 return 0; }

三种循环的死循环实现

while(1){
......
}
******************
for(::){
......
}
******************
do{
.......
}while(1);

以上便是三种循环的简单表示以及对应的break与continue的使用,do while的使用并不经常,推荐在一般使用循环时用for循环,推荐在需要使用死循环时用while

go to 语句

goto语句在一般循环中不常用到,但是如果碰上一些特殊的情况却又不可或缺,让我们来看一下goto语句是如何使用的吧

goto语句由两部分组成,一部分是标志位,另一部分是goto,goto语句在使用时需要先在代码中需要跳转到的位置放置一个标志位,而后将标志符放置在goto后面,此时当代码运行至goto语句时便可以直接跳转到标志位。

for(...)
    for(...)
   {
        for(...)
       {
            if(disaster)
                goto error;
       }
   }
    …
error:
 if(disaster)

我们来看一下如上的代码段,假设没有goto语句的存在,我们退出这些for循环可能就需要不断地break,造成代码的冗余,而拥有goto语句之后,则当运行至goto时就可以直接跳转到error处来进行下面的代码,提高效率,但是goto语句使用条件并不多见,而且易造成代码逻辑的混乱,所以不推荐使用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值