<C>循环 - 2017/11/15

循环   3个循环  <for>   <while>    <do  while>

 

 3个跳转语句 :

       1、     <break>  

        2、    <continue>    

        3、    <return>   (goto 避免使用)

 

1. 循环  

    重复执行 -> 循环     单次执行  --> if(true)

// 格式:
if(条件)
{
    // 条件满足的时候执行的语句
}

while(饿)
{
      吃;   // 循环体
}
// 括号{}什么时候可以不要   循环体   如果只有一句可以去掉
// while(条件)  后面要不要分号   表示后面没有循环体

for(语句1;语句2;语句3)
{
     循环体
}
   // 语句1  初始化部分  在for循环中只执行一次
   // 语句2  写条件  如果条件为真  执行循环体   如果条件为假  跳出循环
   // 语句3  自增自减  i++  ++i更快一点

  a. 先执行语句1 

  b. 判断语句2  如果成立   执行循环体  执行语句3   如果条件为假  跳出循环

 for循环:

// for 循环 2个分号   里面的语句都可以不写,分号一定要写
for(;;)       // 死循环
{
      循环体     
}

 

while循环:

 // 条件如果一直为真   没办法跳出循环   死循环
while(1)
{
    循环体
}

   当前循环  当条件满足就会执行循环 先判断 在执行 for while

   直到型循环   执行循环   直到条件不满足   先执行  再判断  do  while

 

 do - while()循环:

// 格式:
do
{ 循环体; }while(条件); // 这种需要加分号 //先执行语句 再判断 这个循环体至少执行一次

2.循环嵌套  

  嵌套:在循环里面写另外一个循环

  如:

    // 矩形   打印直角三角形  等腰三角形    菱形    梯形  六边形

 

3.跳转:

    goto   无条件跳转    滥用  --> 代码可读性差   许多企业和公司都不允许使用

    break  跳出最近的一个循环或者switch   一般和if搭配使用

    continue  跳过一次循环,进行下一轮循环  和if搭配使用

 

    return  用于函数   跳出这个函数  (放在主函数就退出这个程序)

                  自己写函数   多重循环

    exit  表示直接结束程序

    exit(0);   // 头文件:stdlib

 

代码块:

#include <stdio.h>
#include <Windows.h>

int main()
{
#if 0   // while()循环
    // 打印出:0 ~ 270
    int i = 0;
    while (i <= 270)
    {
        printf("%d\n", i);
        i++;
    }
    // 防止闪屏可以加:while(1);    死循环

#elif 0   // for(;;)  循环
    for (int i = 0; i < 127; i++)
    {
        printf("%c\t", i);
    }
    //int i = 0;  // 如果多次定义变量不能用同一个变量名


#elif 0   // do  while
    int i = 0;
    do
    {
        printf_s("%d\t", i);   // 打印
        i++;                   // 自加加
    } while (i <= 127);        // 判断


#elif 0  // 循环嵌套(打印三角形)
    // 第几行  打印出几个*  打印几行
    int n = 7;
    for (int i = 1; i <= 7; i++)  // 打印7行 
    {
        // 打印i个*  打印换行
        for (int j = 0; j < i; j++)  // 打印列
        {
            printf_s("*");   // 打印
            Sleep(1000);     // 延时
        }
        printf_s("\n");
    }


#elif 0  // 倒三角形 
    for (int i = 7; i > 0; i--)  // 打印行数
    {
        for (int j = 0; j < i; j++)  // 打印列数
        {
            printf_s("*");
        }
        printf_s("\n");
    }


#elif 0   // 菱形
    int n = 10, m = 10;
    for (int i = 1; i <= m; i++)  // 打印10行
    {
        // 第i行   打印n-1个空格  打印i个星星
        for (int j = 0; j < n - i; j++)  // 打印空格
        {
            printf_s(" ");
        }
        for (int k = 0; k < 2*i - 1; k++)   // 打印*号
        {
            printf_s("*");
        }
        printf_s("\n");
    }
    // 倒三角形
    for (int i = m; i >= 1; i--)  // 打印10行
    {
        // 第i行   打印n-1个空格  打印i个星星
        for (int j = 0; j < n - i; j++)  // 打印空格
        {
            printf_s(" ");
        }
        for (int k = 0; k < 2 * i - 1; k++)   // 打印*号
        {
            printf_s("*");
        }
        printf_s("\n");
    }


#elif 0  // 空心菱形
    int n = 10, m = 10;
    for (int i = 1; i <= m; i++)  // 打印10行
    {
        // 第i行   打印n-1个空格  打印i个星星
        for (int j = 0; j < n - i; j++)  // 打印空格
        {
            printf_s(" ");
        }
        if (i == 5)
        {
            for (int k = 0; k < 2 * i - 1; k++)   // 打印*号
            {
                printf_s("*");
            }
        }
        else
        {
            printf_s("*");
            for (int k = 0; k < 2 * i - 1; k++)   // 打印*号
            {
                printf_s(" ");
            }
            printf_s("*");
        }
        printf_s("\n");
    }
    // 倒三角形
    for (int i = m; i >= 1; i--)  // 打印10行
    {
        // 第i行   打印n-1个空格  打印i个星星
        for (int j = 0; j < n - i; j++)  // 打印空格
        {
            printf_s(" ");
        }
        if (i == 5)
        {
            for (int k = 0; k < 2 * i - 1; k++)   // 打印*号
            {
                printf_s("*");
            }
        }
        else
        {
            printf_s("*");
            for (int k = 0; k < 2 * i - 1; k++)   // 打印*号
            {
                printf_s(" ");
            }
            printf_s("*");
        }
        printf_s("\n");
    }


#elif 1   // 跳转
     int i = 0;
     for (;;)
      {
         printf_s("%d\t", i);
         if (i++ >= 100)
         {
             break;
         }
       }
     printf_s("已跳出循环 i的值事%d", i);



#endif

    getchar();
    return 0;
}

 

posted @ 2017-12-21 09:26  让优秀成为一种习惯  阅读(207)  评论(0编辑  收藏  举报