- 作者:老汪软件技巧
- 发表时间:2024-10-06 21:01
- 浏览量:
typora-root-url: C:\Users\吴嘉裕\Pictures\Screenshots
循环语句1.介绍
循环语句用于重复执行一段代码,当达成特定条件时,才会停止循环,而在编程中有着不可估量的作用,它可以帮助我们减少手动一个一个的计算而带来的时间消耗
循环语句包括了3种:
1.while
2.for
3.do while
2.while语句
while的基本使用是
while(条件)
{
语句块;
}
下面就为大家举个例子
通过输入两个数字,寻找该两个数字的最大公约数
例如:
输入:16 24
输出:8
为了实现这个功能,就需要我们使用循环(达到辗转相除法的目的)
#include
int main()
{
int a,b;
scanf("%d %d",&a,&b);
int c;
while(c=a%b)//因为在编程中,当循环为假时便会停止,所以当c为0,也就是a%b为零时,便找到了最大公约数:b
{
a=b;//通过交换达到辗转相除
b=c;
}
printf("%d\n",b);
return 0;
}
再举一个简单的例子:
寻找1~100间3的倍数
#include
int main()
{
int i=1;
while(i<=100)
{
if(i%3==0)
{
printf("%d\n",i);
}
i++;
}
return 0;
}
从上面的两个例子,我们也能大致了解while的用法了
除此之外,我们得了解其作用机理
那么就可能存在下面的问题:
导致这种差别的主要原因是while循环的运行机理
3.for语句
for循环语句是编程中最常用的循环语句,它的用法简单,且能很好地做到嵌套式的循环
for的使用方法:
for(初始化及数据类型;判断范围;每次循环是增加还是减少)
{
语句块;//语句块中可以继续增加循环
}
接下来举一个例子:
判断一个数字是否为质数
#include
int main()
{
int num;
scanf("%d",&num);
for(int i=2;iif(num % i != 0)
{
printf("%d是质数\n",num);
}
}
return 0;
}
再举一个例子:
列出100~200间的质数
#include
#include
int main()
{
for (int a = 100; a <= 200; a++)
{
for (int b = 2; b <= sqrt(a); b++)
{
if (a % b == 0)
{
break;
}
else
{
printf("%d", a);
break;
}
}
}
return 0;
}
对此我们可进行拓展:
计算1!+......10!
#include
int main()
{
int ret=1;//阶乘
int sum=0;//总和
for(int i=1;i<=10;i++)
{
ret=1;
for(int j=1;j<=i;j++)
{
ret*=j;
}
sum+=ret;
}
printf("%d\n",sum);
return 0;
}
当然上面判断质数的方法可以进行一次优化,但在这里就不进行更进一步的说明了
接下来,我先为大家展示一下for的运行机理
这个可以证明运行机理:
由此可见,在for循环中,初始化只进行了一次,之后全是判断和之后的增加
所以就有了下面:
这更加证明了for的运行机理
4.do while语句
do while语句是循环语句中最不常见的,它的基本用法是:
do
{
语句块;
}
while(判断条件);
从上面很清楚的知道,无论判断条件如何,该循环至少会进行一次,这也是为什么比较罕见的原因,因为其余的两个循环能覆盖的范围和做的事更多
下面我简单的举一个例子:
#include
int main()
{
int i=1;
do
printf("%d\n",i);
while(0);
return 0;
}
这也就能看出即使为假,但也会进行一次循环
正因为其工作原理,也出现了这种情况:
总结:循环语句能够重复执行某段代码,应用得当能够为我们节约大量时间,并且每个代码都有自己独特的工作机理和特性