美文网首页
C语言流程控制-----while

C语言流程控制-----while

作者: AuglyXu | 来源:发表于2018-08-31 11:15 被阅读0次

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;
}

相关文章

网友评论

      本文标题:C语言流程控制-----while

      本文链接:https://www.haomeiwen.com/subject/kekswftx.html