目录
##一.所谓的循环,就像是我们要跑1000米,但是学校操场只有400米,你就需要重复跑两圈半,这就叫循环。
##一.所谓的循环,就像是我们要跑1000米,但是学校操场只有400米,你就需要重复跑两圈半,这就叫循环。
##二.循环类型
循环类型 | 描述 |
while循环 | 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。 |
for循环 | 多次执行一个语句序列,简化管理循环变量的代码。 |
do...while循环 | 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。 |
另外还有一个嵌套循环,顾名思义就是 while、for 或 do..while 循环内使用一个或多个循环。
##三.示例
##1.while循环
#include<stdio.h>
#define ONE_KILOMETER 1000
int main(void){
int run_meter = 0;
while (run_meter <= ONE_KILOMETER) {
printf("running...%d\n", run_meter);
run_meter += 1;
}
}
这就是我们的1000米跑步,当路程大于等于1000时(由第五行判断),因为1000 <= 1000,所以循环继续不执行,while循环停止运行,否则一直+1。
//①判断条件——满足或不满足;
//②可能要有自增衡量变量,可能会有界限,当突破界限的时候(上述界限满足或不满足),它可能会退出整个循环,结束循环;
//③可能会出现初始化的量;
##continue(持续)的使用(只能在循环中使用!)
#include<stdio.h>
#define GOLD 1000
int main(void){
int rush = 0;
while (rush <= GOLD) {
if (rush == 500) {
printf("挖到狗屎!!不要!!!!\n");
rush += 1;
continue;
}
printf("rush = %d\n", rush);
rush += 1;
}
}
以淘金为例,假设挖到的第五百块是狗屎,不是黄金,要把第五百块丢掉,需要添加一个if,if后边括号为我们要舍弃的,并在continue前加自增变量(不要遗漏自增变量)【挖下一个,这个咱不要了】
##break的使用(只能在循环和开关swich中使用!)
跟continue用法一样,按上面程序为例,把continue换成break,挖到500块,挖到狗屎,直接停止,不挖了!!!(注意:一个break只能结束一个循环,需要在倒数第三行下面再加一个break才可以结束整个程序)
##2.do...while循环
#include<stdio.h>
#define GOLD 1000
int main(void){
int rush = 1;
do {//先干活(循环),后判断,判断结果如果为ture,那么再继续执行do中的代码块
rush += 1;//或者rush ++;
printf("rush = %d\n", rush);
}
while (rush <= 1000);//do...while的while后面有;而while循环的while后面没;
return 0;
}
还是以挖矿为例,do...while是先干活(循环),再判断,因为程序的核心思想就是从上到下依次执行,所以最后结果是1001
##3.for循环(最常用,最重点的循环!!)
#include<stdio.h>
#define GOLD 1000
int main(void){
int rush;//for循环里只需要声明rush变量
for (rush = 1; rush <= GOLD; rush++)\\不需要像另外两个变量那样麻烦,只需要在这里定义就好
{
printf("rush = %d\n" , rush);
}
printf("挖完了!\n");
return 0;
}
流程:首先执行rush = 1【只执行一次】,然后判断(rush <= GOLD),在执行循环体(printf("rush = %d\n" , rush),然后在执行rush++,之后再判断,一直这样循环,直到满足界限!!退出循环。
##嵌套循环
##for嵌套
※乘法口诀表
#include<stdio.h>
int main(void){
int row, column;
for (row = 1; row <= 9; row++) {
for (column = 1; column <= 9; column++) {/*在嵌套循环里,for循环里嵌套一个if循环,先执行完
嵌套在里面的for循环,再继续执行外面的if循环!*/
printf("%d*%d=%d\t", row, column, row * column);
}
printf("\n");
}
return 0;
}
关于嵌套循环执行逻辑,首先执行row = 1,再判断row <= 9,然后开始执行嵌套在里面的for循环,执行完嵌套在里面的循环后再执行外面的循环!!!!!!!
关于这个具体流程!!我是从for (row = 1; row <= 9; row++) {到printf("\n");以及它们中间的代码全部打上断点,然后开始调试,不运行,然后按f11,来观察每一行代码的运行,从而进一步了解这个循环的运行逻辑!!!!!!!!!!!(干货!)
到这里就结束了,谢谢大家:)