1.基本语法形式
for(表达式1;表达式2;表达式3)
其中,表达式1代表初始化,表达式2为判断部分,表达式3为调整部分。将for语句改写为while语句如下:
表达式1;
while(表达式2)
{
表达式3;
}
2.for语句的优势如下
其不仅可以用于循环以及确定的情况,还可以用于循环次数不确定只给出循环结束条件的情况。可以完全替代while循环。
3.for语句的变种:
1. for(;表达式2;表达式3)//表达式1一般可以省略,且表达式1一般是给变量赋值
2. for(表达式1;;表达式3)//表达式2省略代表循环无终止的进行。等同于while(1)
4.使用for循环来打印一些特殊的图形如下代码:比如金字塔,漏斗,菱形
//打印金字塔
#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
int n = 0;
int k = 0;
printf("请输入一个数字n来决定金字塔的层数:");
scanf_s("%d", &n);
for (i = 0; i < n; i++) //外循环控制次数
{
for (j = n; j > i; j--) //内循环线打印空格后打印星号
{
printf(" ");
}
for (k = 0; k < 2 * i + 1; k++)
{
printf("*");
}
printf("\n");
}
return 0;
}
//打印漏斗
#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
int j = 0;
int m = 0;
int n = 0;
printf("请输入一个数n来确定漏斗的大致形状:");
scanf_s("%d", &n);
for (i=-abs(n);i <= abs(n);i++)//外循环控制层数
{
for (j = 0;j <= n - abs(i);j++) //使用abs函数取绝对值来减少for的多层嵌套
{
printf(" ");
}
for (m = 0;m <= abs(i);m++)
{
printf("* ");
}
printf("\n");
}
return 0;
}
菱形与漏斗差异不大,此处不再赘述。