3、for
for(表达式1;表达式2;表达式3)
循环语句;
表达式1-----初始化部分,用于初始化变量
表达式2-----条件判断部分,用于判断循环的终止
表达式3-----调整部分,用于循环条件的调整
例如:用for输出0到10
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i=0;
for (i = 0; i < =10;i++)
{
printf("%d\t",i);
}
return 0;
}
for (i = 0; i < =10;i++)可以用
int i=0;
while(i<=10)
{
i++;
}替换
误区一: for中的break只能跳出一层循环
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0;
int j = 0;
for (j = 0; j < 10; j++)
{
for (i = 0; i < j; i++)
{
if (5 == i)
{
break;//此处break直接结束此次i的所有循环,跳到内层i的for的{...}之外,继续执行下一个j,所以会跳过i==5之后的所有值。
}
printf("%d ", i);
}
printf("\n");
}
return 0;
}
误区二: for中的continue结束此次循环,跳到判断条件处,对变量进行调整,执行下一个i
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0;
int j = 0;
for (j = 0; j < 10; j++)
{
for (i = 0; i < j; i++)
{
if (5 == i)
{
continue;//此处continue只结束本次循环,回到本次循环的条件判断处,所以此程序只会略过5一个数,而不会略过5之后的所有值。
}
printf("%d ", i);
}
printf("\n");
}
return 0;
}
误区三: 在for内形成死循环。
例如:
在for内修改循环变量
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int j = 0;
for (j = 0; j < 10; j++)
{
j=5;
printf("%d\t",j);
}
return 0;
}
没有条件判断部分
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int j = 1;
for (; ; )
{
printf("%d\t",j );
}
return 0;
}
误区四: 变种程序
以下程序只会执行两次
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0;
int j = 0;
for (i=0,j=0;i<2&&j<5;++i,j++)
{
printf("** ");
}
return 0;
}
以下程序循环一次都不会执行
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0;
int j = 0;
for (i = 0, j = 0; j=0; i++, j++)
{
j++;
printf("%d ", i);
}
return 0;
}
练习代码一:输出1~100之间的所有奇数
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0;
for (i = 0; i < +100; i + 1)
{
if (i % 2 != 0)
{
printf("%d ", i);
}
}
return 0;
}
代码可直接写为:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0;
for (i = 0; i < +100; i+2)
{
printf("%d ", i);
}
return 0;
}