while循环结构
-
格式
-
while(条件表达式)
{
语句
} -
构成循环结构的几个条件
- 循环控制条件
- 循环退出的主要依据,来控制循环到底什么时候退出
- 循环体
- 循环的过程中重复执行的代码段
- 能够让循环结束的语句(递增、递减、真、假等)
- 能够让循环条件为假的依据,否则退出循环
- 循环控制条件
-
-
while循环的注意事项
- 和if一毛一样,学好if,while和切菜没区别
while循环案例
- 输出一个实心菱形
#include <stdio.h>
#include <math.h>
int main()
{
//输出一个菱形
//---*--- //行 1 列4
//--***-- //行 2 列345
//-*****- //行 3 列23456
//******* //行 4 列1234567
//-*****- //行 5 列23456
//--***-- //行 6 列345
//---*--- //行 7 列4
//每列的星个数是{行数-[(行数总和+1)/2 - 当前行数]*2}
//每列两遍的空格数是(行数总和+1)/2 - 当前行数
//提醒用户输入菱形的长度(必须为奇数)
printf("请输入菱形的长度(必须为奇数):\n");
//1.定义一个变量用于接收用户输入的长度
int len = -1;
scanf("%d",&len);
//2.定义变量控制行列数,列数与行数相等
//2.1定义控制行数的变量
int i = 1;
while(i <= len)
{
//2.2定义控制左边空格的变量
int j = 1;
//2.3定义控制星的变量
int m = 1;
//2.4定义控制右边空格的变量
int n = 1;
//打印每列左边的空格
while(j <= fabs((len+1)/2 - i))
{
printf(" ");
j++;
}
//打印每列中间的星
while(m <= (len-fabs(((len+1)/2 - i)*2)))
{
printf("*");
m++;
}
//打印每列右边的空格
while(n <= fabs((len+1)/2 - i))
{
printf(" ");
n++;
}
printf("\n");
i++;
}
return 0;
}
- 输出一个点阵菱形
#include <stdio.h>
#include <math.h>
int main()
{
//输出一个菱形
//---*--- //行 1 列4 0
//--* *-- //行 2 列3 5 1
//-* * *- //行 3 列2 4 6 2
//* * * * //行 4 列1 3 5 7 3 (总行数+1)/2 - 1 个空格数
//-* * *- //行 5 列2 4 6 2 (总行数+1)/2 - 1 - |(总行数+1)/2 - 当前行数| 个空格数
//--* *-- //行 6 列3 5 1
//---*--- //行 7 列4 0
//左边空格的个数为|(总行数+1)/2 - 当前行数|
//1.提示用户输入菱形的长度(只能为奇数)
printf("请输入菱形的长度(长度必须为奇数),并按回车结束\n");
//2.定义变量用于接收用户输入的长度
int len = -1;
//3.接收输入
scanf("%d",&len);
//4.定义变量控制行数
//4.1循环
int i = 1;
while(i <= len)
{
//5.定义变量控制输出左边的空格
int m = 0;
while(m <= fabs((len+1)/2 - i))
{
printf(" ");
m++;
}
printf("*");
//6.定义变量控制输出中间星星和空格
int n = 1;
while(n <= (len+1)/2 - 1 - fabs((len+1)/2 - i))
{
printf(" *");
n++;
}
//7.定义变量控制输出右边的空格
int p = 0;
while(p <= fabs((len+1)/2 - i))
{
printf(" ");
p++;
}
printf("\n");
i++;
}
return 0;
}
网友评论