上一节主要讲述了分支结构,那么这一节讲解循环结构,常用循环结构分为三种,while循环、for循环、do while循环。下面将对这三种结构进行讲解。
1.while循环
对于while循环,其用法与if语句非常类似,接下来看一下while语句的基本结构吧~
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
while(需要满足的条件)
{
循环的内容;
}
return 0;
}
为了方便理解,我们引入一个简单的例子吧!
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a=0;
scanf("%d",&a);
while(a>0)
{
printf("haha\n");
}
return 0;
}
调试运行的时候你会发现,输入的数据只要满足>0,屏幕上就会一直打印haha。如果使用if语句,满足条件就只打印一个haha,由此可见二者的区别,同时还能观察到while的独特之处。了解了之后,我们就上手敲一个简单的代码吧!
例如:打印1~10之间的数字(只要数字在这之间就打印)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ", i);
i++;
}
return 0;
}
2.for循环
了解了while语句之后,接下来学习for循环吧~
在学习之前,首先得了解for循环得基本结构,任何知识都得从它的基本结构开始了解
for(表达式1; 表达式2; 表达式3)
语句;
表达式1-----循环变量的初始化
表达式2-----判断是否循环条件
表达式3-----循环变量的调整
通俗一点就是我们设置得变量在表达式1被初始化,然后到表达式2进行判断,如果满足条件,就执行语句,执行完后返回表达式3对变量的值进行调整;如果不满足表达式2,就跳出循环不执行语句,此时循环终止。对了要注意表达式要用分号(;)隔开!!
废话不多说,我们之间上一个跟上面一样的例子!
例子:打印1~10之间的数字
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 0;
for(i=1;i<=10;i++)
{
printf("%d ", i);
}
return 0;
}
3.do while循环
相较于while和if循环,do while的循环结构就不太一样了,让我们来看看它的结构到底长什么样子吧!
do
{
语句;
}while(循环条件);
为什么说有点不一样呢?这是因为do while循环先执行一边循环才判断条件满不满足,而while、if循环都是先判断条件是否满足,再决定是否执行循环。这就是do while循环的不同之处!
同样的例子,我们再用do while循环试一试!
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 0;
do
{
i++;
printf("%d ", i);
} while (i < 10);
return 0;
}
4.break和continue的用法
上一篇文章在介绍switch语句时,用到了break语句,那么接下来就来进一步了解break,同时了解一下continue的用法以及二者的区别。
break语句,是我们在循环常用的语句,它可以帮我们跳出循环或者提前总之循环。
continue语句,也是我们在循环中常用的语句,只不过它的作用不是终止循环,而是帮助我们跳过continue后面的语句。
这样说你可能有点难以理解,那就让我们通过代码去对比了解一下吧!
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 7)
break;
printf("%d ", i);
}
return 0;
}
你会发现使用break,屏幕只打印了1~6;这是因为i==7满足之后,break生效,就会跳出循环,后买你就不再打印了;而continue就不一样,continue除了7没打印,其余都被打印了,这是因为continue跳过了打印这条语句,跳过之后,i+1了,就不满足条件了,后面的数都会正常打印。这就是二者的区别!相信聪明的你已经明白了!
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 7)
continue;
printf("%d ", i);
}
return 0;
}
既然了解了二者的区别,不妨试试在while和do while循环中使用,看看他们产生的结果是不是也是一样的呢?
4.代码练习
了解三种循环结构以及两个特殊的语句,接下来让我们来练练手吧!
例子1:找出100~200之间的素数,并打印在屏幕上。
分析:首先我们要规定我们的数据范围实在100~200之间;其次我们要了解什么是素数?素数要满足什么条件?最后判断使用哪一种结构更方便?
通过查阅资料我们了解到素数又称质数,只能被1和本⾝整除的数字!那么我们就要让除开1和本身的数之外,不能被其他数字整除,就能找到素数,在打印在屏幕上
第一步打印100~200的数,这个时候我们就需要用到循环结构,经过上面的讲解,无论哪一种循环我们都能打印,不妨定义i=100,满足条件i<=200即可;其次我们要产生2和i-1之间的数去整除,如果余数不为0,那就是素数,不是0就不是素数,这是就需要用循环的嵌套,循环的嵌套和if语句的嵌套是一个道理;最后打印在屏幕上。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
for (i = 100; i <= 200; i++)
{
int flag = 1;//flag==1是素数,flag==0不是素数
for (j = 2; j < i - 1; j++)
{
if (i % j == 0)
{
flag = 0;//将flag重置为0;
break;
}
}
if (flag == 1)
printf("%d ", i);
}
return 0;
}
那么这篇文章到这里就结束啦!感谢观看!