【初阶C语言】随意拿捏循环语句

   

  上节课我们学完了分支语句(if和switch语句),这节课请继续跟着本娥学习循环语句

我们先来了解一下本节所需要取学习的内容:


目录

一、while循环

 1.认识while循环

2.简单while循环

3.while循环中的continue

4.while循环中的break

二、for循环

1.认识for循环

2.简单for循环

3.for循环中的continue

4.for循环中的break

5.for循环的变种

6.注意事项

三、do...while循环

1.认识do...while循环

2.简单例子

3.continue在do语句的作用

4.break在do语句的作用

四、goto转向语句

1.定义

2.作用

3.举例​编辑

4.作用范围

五、总结

1.循环的选择

2.continue与break

3.while与do...while


现在速度跟上我的节奏叭!

一、while循环

 1.认识while循环

 首先,while语句是循环语句,会多次执行语句

  我们先看他的结构:

while(表达式)
    循环体;

       同样,如果表达式为真,则会执行循环体;执行完循环体后会再回到表达式中再去判断表达式是否为真,如果为假,则会跳出循环体,若真,则还会继续执行循环体。

       while后面同样默认跟一条语句,若需要循环多条语句,需要加上大括号{}。

while语句循环流程

 我们先不看虚线部分,如果表达式为真,执行循环体,会再次回到表达式上;如果表达式为假,则会直接跳出循环。

2.简单while循环

我们现在需要用while循环打印1-10数字

#include<stdio.h>
int main()
{
 int i=1;
 while(i<=10)//i满足条件进入
 {
  printf("%d ",i);//循环体部分
  i++;//循环调整部分
 }
  return 0;
}

 可以将该例题与上面的流程图比对。大括号{}内为循环体,循环体一般由循环语句和调整部分组成;如果没有了调整部分,在没有终止语句的前提下,那么就是死循环

3.while循环中的continue

 continue一般用于循环语句中,用于跳出本次循环,对表达式重新判断。

 我们现在需要用while循环打印1-10数字,遇到5不打印

​
#include<stdio.h>
int main()
{
   int i=1;
   while(i<=10)//i满足条件进入
   {
     if(i==5)
       continue;//执行continue的时候,会直接跳过后面的语句
     printf("%d ",i);//循环体部分
     i++;//循环调整部分
  }
   return 0;
}

上面代码打印结果为1 2 3 4;为什么呢?因为当i==5的时候,会执行continue语句,那么就会直接跳过后面的循环体对表达式重新判断。此时i为5,没有被改变,再次进入循环体还是会执行continue,所以只会打印1 2 3 4,后面便死循环了。

我们重新纠正一下代码


#include<stdio.h>
int main()
{
   int i=0;
   while(i<10)//i满足条件进入
   {
     i++;//循环调整部分写在前面
     if(i==5)
       continue;
     printf("%d ",i);//循环体部分
   }
    return 0;
}

打印结果为:1 2 3 4 6 7 8 9 10。这里是先对循环部分进行调整,即使跳过了某次循环,也不会导致死循环。

4.while循环中的break

在循环中,只要遇到break就直接跳出循环,在while中也是同理。

我们用上面的例子

#include<stdio.h>
int main()
{
   int i=1;
   while(i<=10)//i满足条件进入
   {
     if(i==5)
      break;
     printf("%d ",i);//循环体部分
     i++;//循环调整部分
  }
   return 0;
}

这里代码运行的结果依然是1 2 3 4,但是这里不会死循环,因为当执行break的时候,已经是跳出while循环了

二、for循环

1.认识for循环

语法结构:

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

表达式1为初始化语句,表达式2用来判断循环是否进行,表达式3用来调整循环;三个表达式之间必须要用分号(;)隔开

 for循环流程图:

2.简单for循环

用for循环在屏幕上面打印数字1-10

#include<stdio.h>
int main()
{
   int i=0;
 for(i=1;i<=10;i++)//初始化、判断、调整部分都在同一个括号里面
 {
   printf("%d ",i);//循环体
 }
    return 0;
}

执行顺序:1.初始化 i=1(只执行一次)         2.判断 i<=10       3.执行循环语句 printf("%d ",i)                    4.调整 i++              5.判断 i<=10   ............

3.for循环中的continue

continue:同while循环一样,执行到continue语句,直接跳过后面内容,执行判断部分,但是与while循环中的continue还是由=有区别的

直接看上面的例子

#include<stdio.h>
int main()
{
   int i=0;
 for(i=1;i<=10;i++)//初始化、判断、调整部分都在同一个括号里面
 {
   if(i==5)//当1==5的时候,跳过本次循环
     continue;
   printf("%d ",i);//循环体
 }
    return 0;
}

这里的输出结果为1 2 3 4 6 7 8 9 10;这里遇到continue只会跳过循环语句,还是可以对循环进行调整,使其继续往下执行

4.for循环中的break

break在while循环和for循环中的作用一样,只要执行就会直接跳出该循环。

#include<stdio.h>
int main()
{
   int i=0;
 for(i=1;i<=10;i++)//初始化、判断、调整部分都在同一个括号里面
 {
   if(i==5)//当1==5的时候,跳出循环
     break;
   printf("%d ",i);//循环体
 }
    return 0;
}

程序的运行结果为1 2 3 4

5.for循环的变种

第一种:在循环内定义变量(不建议)

#include<stdio.h>
int main()
{
	for (int i = 1; i < 5; i++)//直接在循环内定义变量,为局部变量,出了循环便不再存在
	{
		printf("%d ",i);
	}
	return 0;
}

第二种:省略三个表达式(最好2不要省略,容易出问题)

#include<stdio.h>
int main()
{
	for (;;)//表达式可以省,但是分号不能省
	{
		printf("加强嫦娥");//因为少了判断部分,默认为真,则会死循环
	}
	return 0;
}

注意:嵌套使用省略初始化部分会有问题

   正常代码:

  不正常代码:

 原因:因为没有初始化j的值,j的值只会加不会减,当i=1在进入循环的时候j的值还是3

第三种:多个变量控制表达式

#include<stdio.h>
int main()
{
	int i = 0;
	int j = 0;
	for (i=0,j=0;i<3&&j<3;i++,++j)//可以多个变量,但是要满足一个表达式
	{
		printf("加强嫦娥\n");
	}
	return 0;
}

6.注意事项

不要在for循环的循环体内改变循环变量,会使其循环失效

第一种情况:直接赋值

 第二种情况:相等写成赋值

三、do...while循环

1.认识do...while循环

语法结构:

do
  循环语句;//循环语句可包括执行语句和调整部分
while(表达式);

执行的流程图:

     由此可见,do...while循环至少会执行一次循环语句,其他的跟while语句一样;场景较少,   所以用的比较少

2.简单例子

在屏幕上面打印数字1-10

#include<stdio.h>
int main()
{
	int i = 1;
	do
	{
		printf("%d ",i);//先执行语句
		i++;//循环调整部分
	} while (i<=10);//再进行条件判断

	return 0;
}
3.continue在do语句的作用

同while语句中的continue一样,会跳过本次后面的代码,直接进行下一次判断

#include<stdio.h>
int main()
{
	int i = 1;
	do
	{
		if (i == 5)
			continue;//当执行到continue的时候,只会打印1 2 3 4,然后死循环
		printf("%d ",i);
		i++;
	} while (i<=10);
	return 0;
}
4.break在do语句的作用

作用同while、for语句一样,只要执行到就会直接终止该循环

#include<stdio.h>
int main()
{
	int i = 1;
	do
	{
		if (i == 5)
			break;//当执行到的时候直接跳出循环,所以打印结果为1 2 3 4
		printf("%d ",i);
		i++;
	} while (i<=10);
	return 0;
}

四、goto转向语句

1.定义

        goto语句一般和标记跳转的标号结合

2.作用

       一般用于跳出多层循环,也可以达成一种循环的效果

3.举例

 记号2后面需要用冒号,不能用分号。

4.作用范围

    只能在同一个函数内使用,跨函数无法使用。可以往前跳,也可以往后跳

五、总结

1.循环的选择

     当循环次数不确定的时候选择while循环,循环次数确定时选择for循环

2.continue与break

  while循环中不适合使用continue;for循环中continue比较适合

  break在三种循环结构中都是一样的作用,都合适

3.while与do...while

do...while循环是至少会执行一次程序,while循环可能一次都不会执行。

其他情况两种循环的特点相同。


好啦!本节课到这里就结束啦,你已经学会分支跟循环两大语句了,可以尝试去刷题啦!

记得给本娥点上一个赞哟

猜你喜欢

转载自blog.csdn.net/2301_77053417/article/details/131810205