这一节来深入理解一下for循环语句的使用
一、for语句的结构
for(初始化;判断条件;调整)
分析代码:
创建变量i
for循环语句的初始化为i=1,说明i从1开始循环
判断部分为i<=10,直到i>10时跳出循环
调整部分为i++,每循环一次I+1
此代码结果为打印1-10这10个数字
源代码文章来源:https://www.toymoban.com/news/detail-743695.html
#include<stdio.h>
int main()
{
int i = 0;
//for(初始化;判断;调整)
for (i = 1; i <= 10; i++)
{
printf("%d ", i);
}
return 0;
}
二、for语句中的break
与上节循环语句while中break的作用一样,都是跳出循环
分析代码:
与第一条代码基本一致
在printf语句前增加if条件语句为当i==5时跳出循环(break)
此代码的结果为:1 2 3 4(5还没来得及打印)
源代码
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
{
break;
}
printf("%d ", i);
}
return 0;
}
三、for语句中的continue
与循环语句while中的continue一样,作用为跳过continue之后的语句,重新开始一个循环
分析代码:
与第一条代码基本一致
在printf语句前增加if条件语句为当i==5时,跳过continue之后的语句(即不打印5),重新开始循环(此时i==6)
此代码的结果为:1 2 3 4 6 7 8 9 10(跳过5)
源代码
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
{
continue;
}
printf("%d ", i);
}
return 0;
}
四、for语句中的“左闭右开”形式
所谓的“左闭右开”是指初始化是被赋值的确定的数,判断部分是一个开区间
分析代码:
创建一个元素为10的数组
创建变量i
for循环的初始化为i=0
判断为i<10,为开区间,调整为i++
打印数组
此代码的结果为:10个0
源代码
int main()
{
int arr[10] = { 0 };
int i = 0;
for (i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
为什么建议“左闭右开”,而不建议“左闭右闭”?
:如果是“左闭右闭”,判断部分就为i<=9,不好判断循环次数,如果是i<10就知道是循环10次啦
五、一直for循环
来看这一段代码
在for循环的初始化,判断,调整都是空的,只要判断部分是空的,此时的条件就很为真,所以混进入死循环
源代码
int main()
{
for (;;)
{
printf("hehe\n");
}
return 0;
}
六、for循环嵌套使用
for循环是可以嵌套使用的,可以在for里在使用一个for
你觉得这个执行结果一共是多少个hehe呢?
答案是9个
分析代码:
当i=0进入第一个for循环,j=0,然后来到了第二个循环,在第二个循环中循环3次
在进入第一个循环中,如此也重复3次,所以3*3=9次循环
源代码
int main()
{
int i = 0;
int j = 0;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("hehe\n");
}
}
return 0;
}
但是如果初始化省略掉,打印几个hehe呢?
这是因为当初始化省略掉后,第二个for循环3次后再进入第一个循环,然后再准备第二个循环时,j已经=3,而不是0,所以结束循环
源代码
int main()
{
int i = 0;
int j = 0;
for (; i < 3; i++)
{
for (; j < 3; j++)
{
printf("hehe\n");
}
}
return 0;
}
七、for循环的变式
for循环还可以被两个变量控制
由变量x,y同时限制for循环的条件,结果为两个hehe
源代码
int main()
{
int x, y;
for (x = 0, y = 0; x < 2 && y < 5; ++x, y++)
{
printf("hehe\n");
}
return 0;
}
八、小练习
这个for循环会循环几次?
答案是0次
因为在判断部分k=0,是将0赋给k,而不是k==0,所以判断部分为假,不会进入循环
源代码
int main()
{
int i, k;
for (i = 0, k = 0; k = 0; i++, k++)
{
k++;
}
return 0;
}
总结
以上就是本人对于循环语句for的学习与理解文章来源地址https://www.toymoban.com/news/detail-743695.html
到了这里,关于【C语言】循环语句for的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!