1.for循环
例1:打印1~10
#include<stdio.h>
int main()
{
?? ?int i = 0;
?? ?for (i = 1; i <= 10; i++)//先执行第一个语句初始化i=1;再执行第二个语句i<=10成立,然后打印i的值1,然后执行第三句i++,i=2,再次执行第二句i<=10成立,然后打印i的值为2......
?? ??? ?printf("%d ", i);
?? ?return 0;
}
结果:1 2 3 4 5 6 7 8 9 10
2.break在for中的作用
例2
#include<stdio.h>
int main()
{
?? ?int i = 0;
?? ?for (i = 1; i <= 10; i++)
?? ?{
?? ??? ?if (i == 6)
?? ??? ??? ?break;//for循环中遇到break直接永久的终止整个循环。
?? ??? ?printf("%d ", i);
?? ?}
?? ?return 0;
}
结果:1 2 3 4 5 6?
3.continue在for中的作用
例3
#include<stdio.h>
int main()
{
?? ?int i = 0;
?? ?for (i = 1; i <= 10; i++)
?? ?{
?? ??? ?if (i == 6)
?? ??? ??? ?continue;//for循环中遇到continue,continue会直接跳过后面的语句,直接回到第三个语句进行i++,然后执行第二句判断要不要进行下一次循环。
?? ??? ?printf("%d ", i);
?? ?}
?? ?return 0;
}
结果:1 2 3 4 5 7 8 9 10
写for循环语句的建议:1.不可再for循环体内修改循环变量,防止for循环失去控制。2。建议for语句的循环控制变量的取值采用“前闭后开区间”写法。
4.一些for循环的变种
例4
#include<stdio.h>
int main()
{
?? ?int i = 0;
?? ?for (;;)
?? ?{
?? ??? ?printf("hi", i);
?? ?}
?? ?return 0;
}
结果:hi死循环
c语言中for循环语句中的条件可以省略,但是不建议省略
例5
#include<stdio.h>
int main()
{
?? ?int i = 0;
?? ?int j = 0;
?? ?for (i = 0; i < 2; i++)
?? ?{
?? ??? ?for (j = 0; j < 2; j++)
?? ??? ??? ?printf("hi ", j);
?? ?}
?? ?return 0;
}
结果:hi hi hi hi
执行第一句i = 0;然后执行第二句i<2成立;然后进入下面的for循环,执行第一句j?= 0;再执行第二句j < 2成立;然后打印hi ,再执行第三句j++,j = 1,再执行第二句j < 2成立;然后打印hi ;再执行第三句j++,j = 2,再执行第二句,j < 2不成立,跳出循环,回到上一个for循环的第三句i++,i = 1;再执行第二句i < 2成立,然后进入下面的for循环,执行第一句j?= 0;再执行第二句j < 2成立;然后打印hi ,再执行第三句j++,j = 1,再执行第二句j < 2成立;然后打印hi ;再执行第三句j++,j = 2,再执行第二句,j < 2不成立,跳出循环,回到上一个for循环的第三句i++,i = 2;再执行第二句i < 2不成立,跳出循环。
例6:
#include<stdio.h>
int main()
{
?? ?int i = 0;
?? ?int j = 0;
?? ?for (; i < 2; i++)
?? ?{
?? ??? ?for (; j < 2; j++)
?? ??? ??? ?printf("hi ", j);
?? ?}
?? ?return 0;
}
结果:hi hi?
执行第一句i = 0;然后执行第二句i<2成立;然后进入下面的for循环,执行第一句j?= 0;再执行第二句j < 2成立;然后打印hi ,再执行第三句j++,j = 1,再执行第二句j < 2成立;然后打印hi ;再执行第三句j++,j = 2,再执行第二句,j < 2不成立,跳出循环,回到上一个for循环的第三句i++,i = 1;再执行第二句i < 2成立,然后进入下面的for循环,这时j没有进行初始化,所以j还是等于2,执行第二句j < 2不成立,跳出循环。