网站建设功能描述书,wordpress设置可写,商城网站模版代码,直接IP做网站目录
1.for循环
2.循环执行顺序
3.易错点
4.思维导图 前言
我们定义了一个数组以后#xff0c;要使用#xff08;读取或者修改#xff09;数组元素的话#xff0c;可以一个一个的读取#xff0c;就前两课学的那样#xff0c;代码类似这个结构。
int …目录
1.for循环
2.循环执行顺序
3.易错点
4.思维导图 前言
我们定义了一个数组以后要使用读取或者修改数组元素的话可以一个一个的读取就前两课学的那样代码类似这个结构。
int number_list[5]{1,2,3,4,5};
printf(%d\n,number_list[0]);
printf(%d\n,number_list[1]);
printf(%d\n,number_list[2]);
printf(%d\n,number_list[3]);
printf(%d\n,numebr_list[4]); 假如我们对一个有10000个元素的数组挨个打印输出他们的元素呢难不成还要写一万行printf()
这显然是不现实的。这种代码太多了很容易出错也很难维护。
这时候我们就要引入一种新的机制——循环它可以按照我们意愿反复执行同样的代码直到满足边界条件。 循环就像是一个没有感情的机器人我们可以让它执行重复的枯燥的工作当然这个工作需要步骤清晰。
比如图中1打开抽屉2取出物品3关上抽屉。这三个动作重复但清晰机器人会重复执行它们直到取完所有抽屉里面的物品。
C语言中有多种循环的机制我们今天学习第一种循环——for循环。 1.for循环 1.1 自然界中一直重复的四季更替昼夜交替阴晴圆缺叫做循环。
在程序中满足条件的情况下反复执行同一段代码就叫做循环。 下面代码会循环打印变量a的值一共打印五次
for(int a0;a5;aa1)
{printf(“变量的值是%d\n”,a);
}1.for循环的语法格式——循环条件部分 for( int a 0; a 5; a a 1 )
2.for循环的代码块 { printf(变量a的值是%d\n, a); }
3.for循环的关键字——for for(int a0;a5;aa1)
{printf(“变量的值是%d\n”,a);
}4.for循环中的第一部分初始定义 int a 0
5.for循环中的第二部分循环判断的条件 a0
6.for循环中的第三部分迭代操作 aa1 1.2 for(;;
for循环的循环条件部分被两个分号分隔成了三个部分它们分别是
初始定义循环判断条件迭代操作。 for循环的条件中第一部分是在第一个分号之前我们叫做初始定义
比如这里定义了变量aint a 0 。 1.3 我们来填写一个for循环的判断条件中的初始定义int b 10
for(int b10;b20;b);
for循环的条件中第二部分是在第一个分号之后第二个分号之前我们叫做循环的判断条件
比如这里判断a 5是否为真如果为真就执行循环中的代码块如果为假就结束循环。 1.4 最后一部分是第二个分号之后的部分是迭代动作也是决定了要循环几次的地方 如果没有变量的迭代动作可能循环的判断条件永远为真这就变成了无限循环或者死循环 如果一次迭代动作是给变量增加5那可能循环的判断条件只有第一次为真迭代一次以后就为假了也就不再执行了。 填写for循环中的第三部分迭代操作b
for(int b10;b20;b);
同样是给变量增加1我们一次使用了a a 1
一次使用了自增符号b两者效果是一样的。 1.5 for循环的代码块和判断一样for循环的代码块也是被花括号括起来的只要判断条件符合就会执行这个代码块。
我们来填入循环的代码块打印b的值printf(b的值是%d\n, b);
for(int b 10; b 15; b)
{printf(b的值是%d\n, b);
}
打印结果
10
11
12
13
141.6 for循环里面第一部分是初始定义定义变量的值
第二部分是循环的判断条件为真就执行代码块为假就不执行
第三部分是迭代动作用以控制循环的执行次数 1.7 有了for循环我们就可以让代码帮我们做哪些枯燥单调的重复动作了。比如我们就可以告诉机器人 1从第一个格子开始
2格子数小于9之前都取出格子里的东西
3每次格子数增加1。 同时就像判断一样我们也可以看到循环的代码执行顺序和顺序执行条件执行也是不一样的。
顺序执行是从上到下
条件执行是根据判断条件只执行一部分分支的代码但只会执行一次
循环执行则是会反复执行同一部分的代码。 2.循环执行顺序 2.1 计算机是个一板一眼的家伙我们写出来的代码它都会默认按照从上到下的顺序执行。
比如这里的顺序执行
int a1;
int b2;
int c3;
printf(a的值是%d\n,a);
printf(b的值是%d\n,b);
printf(c的值是%d\n,c);
1.执行第一行 int a 1;
2.执行第二行 int b 2;
3.执行第三行 int c 3; int a1;
int b2;
int c3;
printf(a的值是%d\n,a);
printf(b的值是%d\n,b);
printf(c的值是%d\n,c);
4.执行第四行 printf(a的值%d\n, a);
5.执行第五行 printf(b的值%d\n, b);
6.执行第六行 printf(c的值%d\n, c); 2.2 以及if-else判断语句中的选择执行只执行某一个判断分支。
这里的判断语句只执行else分支
int a5;
if(a5){printf(大于五\n);
}
else{printf(小于等于五\n);
}
然后我们来看看循环的代码执行顺序
循环会反复执行代码块中的代码直到循环条件不满足。
int number_list[5]{1,2,3,4,5};
for{int count0;count5;count};{printf(%d\n,int numbrt_list[count])
}1.执行的第一行定义一个整形数组并赋值 int number_list[5] {1, 2, 3, 4, 5}
2.for循环开始进行判断判断为真执行代码块的代码 for(int count 0; count 5; count)
3.第一次执行代码块用count变量直接当做数组下标使用 printf(%d\n, number_list[count]
4.第二次循环条件的判断 for(int count 0; count 5; count)
5.第二次执行代码块数组下标为1 printf(%d\n, number_list[count])
………
12. 第六次判断循环条件count是5判断条件count 5不成立终止循环 2.3 可以看到循环的代码执行特点
循环判断条件符合的时候会反复执行代码块中的代码。
细到for循环里面也有小的执行顺序之分
int number_list[5]{1,2,3,4,5};
for(int count0;count5;count){printf(%d\n,number_list[count]);
}
1.执行到for循环
2.只有第一次才执行初始定义也就是这里的定义一个变量 int count 0
3.循环开始以后先执行循环的判断条件 int number_list[5] {1, 2, 3, 4, 5};
4.再执行代码块中的代码 printf(%d\n, number_list[count])
5.最后执行迭代操作的自增 count 所以在for循环内部首先执行初始条件的定义这只会执行一次
然后进行循环条件的判断判断为真执行代码块中的代码
最后执行迭代操作。 2.4 对于写代码和阅读代码的人来说循环执行顺序的难点就已经不是代码的写法了
而是循环中的代码块到底要执行几次在什么条件下终止循环 我们去看需要执行几次循环中的代码块这件事情一般都是自己心算一下或者用笔计算一下有个大致的判断以保证代码按照我们的需求来正确执行。 同时循环和判断的代码块也是一样的代码块中的代码作为一个整体统一顺序执行不能够分割出来
所以也会用到花括号{}来定义代码块。 同时我们这里也应用了自增运算符i来做迭代操作这也是自增运算符最重要的应用场景。 2.5 同时我们用for循环对数组中的每个元素进行了一次访问我们就说完成了一次遍历。
遍历是指对一个数组中的所有元素进行访问的操作。 3.易错点 初始变量的定义也可以先在for循环外进行
for(;;)会造成程序的死循环无限循环永远停不下来的循环。 4.思维导图 在撰写这篇文章时我参考了《白纸编程》这个app的观点和思想我要感谢他们对我的启发和帮助。