zoukankan      html  css  js  c++  java
  • 黑马程序员__C语言__循环结构

    循环结构

    while循环

    1.while循环基本使用

     1 int main()
     2 {
     3     int cout = 0;
     4     while(count<=50)
     5     {
     6         ++count;
     7         printf("做第%d次俯卧撑
     count");//(循环体)
     8 
     9     }
    10     return 0;
    11 }        

    使用while 循环的时候,先确定需要重复执行的操作,在确定约束条件。

    2.while循环的关键字

    continue
    结束当前的循环体,进入下一次循环体的执行

     1 int main()
     2 {
     3     int cout = 0;
     4     while(count<=50)
     5     {
     6         ++count;
     7         if(count%10 ==0);
     8         {
     9             continue; //如果是10的倍数,那么就跳出if重新判断循环条件
    10         }
    11         printf("做第%d次俯卧撑
     count");//(循环体)    
    12     }
    13     return 0;
    14 }
    15             

    break

    直接结束整个while循环,退出整个循环的关键字

     1 int main()
     2 {
     3     int cout = 0;
     4     while(count<=50)
     5     {
     6         ++count;
     7         printf("做第%d次俯卧撑
     count");
     8         if(count == 30)
     9         {
    10             break; //意思是循环进行到count== 30的时候退出整个while循环
    11         }
    12     }
    13     return 0;
    14 }    

    总结
    while 循环运行原理
    1.如果一开始条件不成立,永远不会执行循环体
    2.如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立.......


    练习1:
    提示用户输入一个正整数n,计算1+2+3+...+n的和

     1 #include <stdio.h>
     2 
     3 int main ()
     4 {
     5     int n =0; // 一定要初始化
     6     while(n <= 0)
     7     {
     8         //1.提示输入
     9         printf(请输入一个正整数:
    );
    10         //2.接收输入
    11 
    12         scanf("%d", &n);
    13     }
    14 
    15 
    16 
    17 
    18 /*****************方法2**************
    19     int n;
    20     if ( n <= 0) 
    21     {
    22         printf("非法输入!!");
    23         return 0; 
    24     }
    25     int sum = 0
    26 
    27 ***********************************/
    28 
    29     int number =1 //默认被加的数值
    30 
    31 // 3.计算
    32     while (number < n)
    33     {
    34         sum += number;
    35         number++;
    36     }
    37 
    38     printf("%d
    ", sum)
    39     return 0;
    40 }    

    练习2:
    计算100以内所有3的倍数的个数

     1 #include <stdio.h>
     2 
     3 int main ()
     4 {
     5     // 记录3的倍数的个数
     6     int count = 0;
     7 
     8     // 记录当前检查的数值
     9     int number = 0;
    10 
    11     while (number <100 )
    12     {
    13         number++;
    14         //说明number是3的倍数
    15 
    16         if(number%3 == 0){
    17         count++;
    18         }
    19     }
    20     printf ("1-100内3的倍数的个数:%d
    , count")
    21     return 0;
    22 }

    while循环使用注意

    while(10) // 10为真,为1
    {
    printf("hahahah ");
    }

    上面代码会引发死循环,所以要注意while循环的条件

    int a = 10;
    while(a>0)
    printf("hahahah "); // 如果while后面没有大括号,那么会默认while后面第一个语句为循环体
    {

    }

    int a = 10;
    while(a>0); // 死循环,后面的分号代表while循环这个结构完了,后面不是while的部分

    {
    printf("hahahah ");
    }

    while(1); //最简单的死循环


    do while 循环

    do{

    }while(条件); // do while 循环不管条件成不成立都会先执行一次条件

    很多情况下while 和do while是可以互换的

    for循环

    for(语句1;条件;语句2)
    {
    循环体;
    }

     1 #include <stdio.h>
     2 
     3 int main ()
     4 
     5 {
     6     for( int count = 0; count <50 ; count++)
     7     {
     8         printf("做第%d次俯卧撑
    ,count");
     9     }
    10     return 0;
    11 }

    语句1:初始化语句
    语句2:增量语句(执行完循环体后在执行的语句)

    for循环一开始就会执行一次语句1(整个for循环只会执行一次)
    判断条件是否成立,如果成立,就会执行一次循环体,然后就会执行语句2,再次判断条件是否成立

    for 循环把变量定义在语句里面,语句结束后变量就会回收,而while 循环则把变量定义在语句外面,不能及时回收变量,所以for循环要比while性能要高。

    for循环使用注意(在代码中详细介绍)

    for(int i = 0;i<5;i++); //注意,不要随便在for()后面写分号
    {
    printf("haha ");
    }


    下面是错误写法,for定义变量要加{},不然变量的作用域会不明确,编译器报错
    for(int i = 0;i<5;i++);
    int a = 10;

    for(int i = 0;i<5;i++,a++);
    {
    int a = 10; 这样定义是错误的,因为执行a++之前变量a就已经销毁了
    //int i = 10; 这样定义是没错误的,因为语句1定义的i的作用域已经包括了语句2里面的i++
    }
    //循环体每次执行完都会自动销毁

    for(;;); // for循环最简单死循环


    for循环嵌套(用在像输出QQ好友列表的时候)

     1 #intclude <stdio.h>
     2 int main()
     3 {
     4     for(int i=3;i<=3;i++)
     5     {
     6         printf("好友列表%d
    ",i);
     7         for(int j =1;j<=6; j++)
     8         {
     9 
    10             printf("好友%d
    ",j);
    11         }
    12     }
    13     return 0;
    14 }

    上面代码会输出i个好友列表,每个列表有j个好友

    for循环嵌套练习

    // 提示用户输入一个正整数n,如果n=5,就输出下列图形,其他n值以此类推
    *****
    ****
    ***
    **
    *

     1 #include <stdio.h>
     2 int main()
     3 {
     4     //提示一个变量储存用户输入的值
     5     int n =0;
     6 
     7     //判断n值合不合理
     8     while(n <=0)
     9     {
    10         提示用户输入正整数
    11         printf("请输入一个正整数:
    ");
    12         scanf(%d,&a);
    13     }
    14     //输出图形
    15 
    16     for(int i=0; i<=n;i++) //有多少行
    17     {
    18         for(int j=0;j<=n-i;j++)
    19         {
    20             printf("*");
    21         }
    22         pintf("
    ");
    23     }
    24 
    25     return 0;
    26 }

    额外知识补充

    break和continue使用注意

    break使用场合
    1.switch语句,退出整个switch语句
    2.循环结构:退出整个循环结构
    while
    do while
    for

    continue 使用场合
    循环结构:结束当前这次循环体,进入下一个循环体
    while
    do while
    for

    break和while 只对最进的循环体有效

  • 相关阅读:
    linux-shell编程-1-简介
    linux-tail
    linux-grep
    linux-sort
    linux-sed
    linux-awk
    函数调用
    选择结构和循环结构
    列表字典集合常用函数
    datetime模块
  • 原文地址:https://www.cnblogs.com/jia694600474/p/3975934.html
Copyright © 2011-2022 走看看