嗯,隔了好几天没用复习,实在因为课程作业,还有晚上的课给狙击了阿,当作给自己放松了几天吧,加之前面几天因为调试VS浪费太多时间,所以还是有点紧迫感的,毕竟事确实多。代码的练习只能推到明天和周末搞了,今天还是继续复习知识点。
今天进击循环结构,循环结构是一个比较重要的东西,但是其实也不难,只要把逻辑方面搞清楚了,代码这块还是不难滴。循环本质就是实现了代码的复用,就是把某一部分代码多次使用,想要实现循环主要有以下几种操作
1、if goto
2、for
3、while
4、do while
大家一看if goto可能不是非常熟悉,因为呢,后面三个我们都可以称之为循环语句,而if goto仅仅是能够实现循环这样一个操作而已,而且它本身也存在非常多的问题,所以我们基本不用,只做了解。
if goto
怎么用呢,按照其字面意思来看,goto就是去某个地方,那么goto的意义就是无条件的跳转到代码的某一行去,那么你想跳到某一行总得给个坐标吧,所以出现了个行标识,行标识的命名规则和标识符一样,每一行都可以在自己的上面一行加一个行标识,goto+行标识就是跳转到行标识的下一行
#include<stdio.h>
int main()
{
int i = 0;
int sum = 0;
HP:
sum = sum+i;
if(i<100)
{
i = i+1;
goto HP;
}
printf("%d",sum);
return 0;
}
其实用着感觉goto也不差,但是呢一段用多了就会让代码的可读性变得非常差,你读代码的时候就感觉跳来跳去的。所以不建议使用。
while
这个就是正规军了,正统的循环语句,它是怎么用的呢,其实和if有点相似哦,while(表达式),while会去判断表达式的值,只要表达式的值为false(也就是0)它就会跳出整个while循环,只要表达式的值为true(非0)他就会一直执行被while所管辖的语句,管辖这个词我们之前也说过了哈,如果没用{}那么它就只能管辖到第一个分号结束!
//逆序输出一个整数
#include<stdio.h>
int main()
{
int h,p;
printf("请输入一个非负整数");
scanf("%d",&h);
while(h)
{
p = h%10;
h/=10;
printf("%d\n",p);
}
return 0;
}
do while
这就是while的一个小变形,while呢是先要去判断while(表达式)的值如果为真,再去执行while所管辖的语句,而do while就反过来了,它是先去执行do所管辖的语句,然后去判断while(表达式)的真假,如果为假那么直接结束do while循环,如果为真那么继续执行do所管辖的语句
#include<stdio.h>
int main()
{
int i,sum = 0;
do
{
sum = sum+i;
i++;
}
while(i<101);
printf("%d",sum);
return 0;
}
这个do while挺逗的感觉,首先大家要注意了,while后面接了个分号,意思就是while后面不能再加其他东西了,到这就打住了,那它的功能不就和while一模一样了吗,又没用上面突出的地方,两个可以说是互通的。
for
for这个循环语句,想必是大家平常用得最多得,它怎么使用呢:for(;;)可以看见for括号里面用了两个分号隔开,也就是说,里面可以存放三个东西,这三个东西都要为表达式,第一个是赋初值,第二个是判断条件,第三个你可以理解为步长也行。执行得时候它是先执行第一个表达式然后执行第二个表达式(判断表达式)如果为真就会执行第三个,然后又跳回第二个执行(所以第一个表达式就只执行一次,后面不再执行了),如果为假,那么就直接跳for循环。
关于for里面得三个表达式你都可以省略不写,你都不写系统也不会报错,但是呢如果你不写第二个表达式那么就会默认你的判断表达式恒为真,就会死循环了。你也可以把三个表达式写在外面:
#include<stdio.h>
// int main()
// {
// int sum = 0;
// for(int i = 0;i<101;i++)
// {
// sum = sum+i;
// }
// printf("%d",sum);
// return 0;
// }
int main()
{
int sum = 0;
int i = 0;
for(;i<101;)
{
sum = sum+i;
i++;
}
printf("%d",sum);
return 0;
}
如上,你放在外面也可以,放在for里面也可以,但是就算你把第一个表达式和第三个表达式放在外面了,你for里面的分号还得打上去不能少,还有就是第二个表达式最好还是写在里面比较好,其实第二个表达式你也写不出来hh。
continue和break
我们先来看这二者的区别,首先是字面上的区别,很明显break有结束的意思,它的涵义就是,执行到它的时候就直接结束该循环or该语句,所以呢break可以在switch语句里面使用,也可以在三大循环语句里面使用,那么再来看continue,它呢有着继续的意思,它的作用是跳出本次循环,继续执行下一次循环,也就是说continue只能作用于三大循环语句中(for,while,do while)。