语法结构:
for(表达式1;表达式2;表达式3)
循环语句;
表达式1为初始化部分(初始化部分只会执行一次),用于初始化循环的变量 表达式2为条件判断部分,用于判断循环什么时候终止 表达式3为调整部分,用于循环条件的调整
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
printf("%d", i);
}
return 0;
}
打印出来是1-10
break在for循环中作用
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if(i==5)
break;
printf("%d ", i);
}
return 0;
}
打印出来结果是1 2 3 4.
for循环中的break也是用于终止整个循环
continue在for循环中的作用
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
if (i == 5)
continue;
printf("%d ", i);
}
return 0;
}
打印出来为1 2 3 4 6 7 8 9 10
跳过了5
说明continue跳过了本次循环及后面的代码
for语句的循环控制变量
建议
1、不可在for循环体内修改循环变量,防止for循环失去控制
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
printf("%d ", i);
i = 5;
}
return 0;
}
比如这个代码我们在中间让i=5;
这个时候会出现一个死循环
2、建议for语句的循环控制变量的取值采用“前闭后开区间”写法
#include <stdio.h>
int main()
{
int i = 0;
for (i = 0; i <10; i++)//i=0为左闭,i<10为右开
{
printf("%d ", i);
}
return 0;
}
为什么我们要这么写代码,是因为10可以代表某种特殊的意义,比如循环了10次
一种for循环的变种
#include <stdio.h>
int main()
{
for (;;)
{
printf("hehe\n");
}
return 0;
}
打印出来是hehe死循环
for括号()中间的内容都可以省略,但是如果判断省略就会导致死循环
#include <stdio.h>
int main()
{
int j = 0;
int i = 0;
for (j = 0; j < 3; j++)
{
for (i = 0; i < 3; i++)
{
printf("hehe\n");
}
}
return 0;
}
上面代码会打出9个hehe,如果我们把i=0删除会发生什么
#include <stdio.h>
int main()
{
int j = 0;
int i = 0;
for (j = 0; j < 3; j++)
{
for (; i < 3; i++)
{
printf("hehe\n");
}
}
return 0;
}
结果就是就只有3个hehe了,因为当i++三次之后,i一直==3,j循环不起作用了