学习日志(六)
循环结构
for循环
结构:for(式子1;式子2;式子3)语句3;
执行过程:先执行式子1(式子1只执行一次),然后判断式子2,式子2为真执行循环语句,循环语句执行完再执行式子3,式子3执行完再去判断式子的真假,直到为假,循环结束
注意:
1)通常情况下,式子1表示"初值",式子2表示"条件",式子3表示"增量"
2)三个式子之间用两个分号隔开,分号不能缺省
3)三个式子都可以省略不写,如果省略不写式子2,相当于条件永真
while循环
结构:while(条件)语句;
while(条件){语句1;语句2;…语句3}
执行过程:先判断条件,条件为真执行循环语句,执行完语句再判断条件,直到条件为假,结束循环
eg:循环三要素 初值:i=1
条件:i<=5
增量:i++(如果没有增量,会无限循环)
我觉得for循环和while循环应用的区别就是是否知道循环次数。
双层循环多应用于打印各种样式图案,举一个印象比较深的题目:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”三角形图案。
#include <stdio.h>
int main() {
int n;
scanf ("%d",&n);
for (int i=1;i<=n;i++) {
for (int j=1;j<=i;j++) {
if (i==1||i==n||j==1||j==i) { //控制*的位置
printf ("* ");
}
else {
printf (" ");
}
}
printf ("\n");
}
return 0;
}
感觉这种题的本质也在于找规律,找出行和列的*和" "与n和i的关系
百钱买百鸡也是其中比较经典的题目,用for循环遍历所有可能出现的情况,最后if检查条件,输出符合条件的组合