前言&概括
鼠鼠也是才学C语言,屏幕前的各位多指教,鼠鼠耐骂。
浅浅讲一下怎么使用C语言三种循环结构的语句:while for do…while
1、while循环
(1)if语句和while语句在形式上的对比
两者在语法结构上基本都是一致的,再度提醒if无{}只能管理紧邻的一个句子。
if(exp1)
{
语句
}
while(exp2)
{
语句
}
(2)while语句作用
若()中的表达式判定为真,则按序执行while{}内部的语句。循环这个过程,直到表达式被判定为假。
看不懂的可以看看图片
sb练习:打印1~99
#include<stdio.h>
int main()
{
int i=1;
while(i<100)
{
printf("%d ",i);
i++;
}
return 0;
}
sb练习:输入并逆序输出数字
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
while(n)
{
printf("%d ", n%10);
n /= 10;
}
return 0;
}
2、for循环
由于形式最为简明扼要,for循环往往是C语言里面使用得最多的一种。但三种循环本身并无好坏之分
(1)语法形式
for(exp1;exp2;exp3)
{
语句
}
exp1 用于循环变量的初始化
exp2 用于循环结束条件的判断
exp3 用于循环变量的调整
(2)for循环作用
进入for循环后,进行exp1操作(仅仅在开始循环的时候做一次,后面不在进行该操作)
判断exp2返回值是否为真,真则开始运行{}内部的语句,结束该轮循环后,进行exp3操作。
接下来重复斜体加粗部分的操作直到exp2返回值为假,结束这一层级的该for循环。
如图所示
sb练习:在屏幕上打印1~10的值
产生1~10的数字的载体;打印。
#include <stdio.h>
int main()
{
int i = 0;
for(i=1; i<=10; i++)
{
printf("%d ", i);
}
return 0;
}
for和while循环的差别:形式整齐
上面我们提到:
exp1 用于循环变量的初始化
exp2 用于循环结束条件的判断
exp3 用于循环变量的调整
for循环能够把三个表达式都放在一起,并且这三个表达式都是循环所不可或缺的
3、do…while
用的比较少,和while的区别就是先做一次循环体(即{}部分)内容,再来判断exp
语法形式
do
{
语句
}while(exp);
do…while循环作用及与while的对比
小练习:计算非负整数有几位数
(槽点在于0也是一位数,不管怎样上来cnt都要+1;只不过用的很少就对了)
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int cnt = 0;
do
{
cnt++;
n = n / 10;
} while (n);
printf("%d\n", cnt);
return 0;
}
4、break和continue语句
提前终止循环是很常见的情况:
在高中每天上课是循环体
break就好比毕业
毕业了就不去高中上课
continue就好比休假
休完假还是去高中上课
break
作用:停止这个break语句所在的循环的一切语句,按照顺序结构继续向下走。
对于所有循环语句都一样。
举例
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
break;//当i等于5后,就执⾏break,循环就终⽌了
printf("%d ", i);
i = i+1;
}
return 0;
}
continue
停止这个循环体的这一次的循环,开始判断循环结束条件,剩下的就按照循环语句的情况来执行。
for循环中触发continue:之后会执行这一次循环中的exp3然后再开始判断循环结束条件,剩下的就按照循环语句的情况来执行。
举例
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
continue;
//当i等于5后,就执⾏continue,直接跳过continue的代码,去循环的判断的地⽅
//因为这⾥跳过了i = i+1,所以i⼀直为5,程序陷⼊死循环
printf("%d ", i);
i = i+1;
}
return 0;
}
5、嵌套循环
前⾯学习了三种循环 while , do while , for ,这三种循环往往会嵌套在⼀起才能更好的解决
问题,就是我们所说的:循环嵌套,这⾥我们就看⼀个例⼦。
举例
找出100~200之间的素数,并打印在屏幕上。
注:素数⼜称质数,只能被1和本⾝整除的数字。
解析:
要找出素数,⾸先得有100~200之间的数,这⾥可以使⽤循环解决。
假设要判断i是否为素数,需要拿2~ i-1之间的数字去试除i,需要产⽣2~i-1之间的数字,也可以使⽤循环解决。
如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。
#include <stdio.h>
int main()
{
int i = 0;
for(i=100; i<=200; i++)//循环产⽣100~200的数字
{//循环产⽣2~i-1之间的数字
int j = 0;
int flag = 1;//假设i是素数
for(j=2; j<i; j++)
{
if(i % j == 0)
{
flag = 0;
break;
}
}
if(flag == 1)
{
printf("%d ", i);
}
}
return 0;
}
简化版本:
因为当存在a,b使得m=a*b,则m不是素数,所以a和b至少有一个是<=m的所以范围只需要缩小到2~根号m即可。
能大大减少电脑的运算量,比如右边边界是100,开根则10
#include <stdio.h>
int main()
{
int i = 0;
for(i=100; i<=200; i++)//循环产⽣100~200的数字
{//循环产⽣2~根号i之间的数字
int j = 0;
int flag = 1;//假设i是素数
for(j=2; j*j<=i; j++)
{
if(i % j == 0)
{
flag = 0;
break;
}
}
if(flag == 1)
{
printf("%d ", i);
}
}
return 0;
}
共勉
以下就是我对 C语言循环 的理解,如果有不懂和发现问题的小伙伴,请在评论区说出哦,同时我还会继续更新 C语言循环 ,请持续关注我哦!!!
标签:语句,---,return,int,C语言,新手入门,while,循环,include From: https://blog.csdn.net/sbsztdl/article/details/145207601