zoukankan      html  css  js  c++  java
  • C语言基础--while循环

    while循环格式:  

       while (条件表达式)  
        {
           语句;
           ...
       }  

    执行说明:

    while是对给定的条件进行判断, 如果条件满足, 就执行while后面大括号中的内容, 执行完毕之后会再次判断条件表达式, 如果满足会再次执行while后面大括号中的内容(循环体), 直到条件表达式不满足为止

    应用场景:

    当我们需要一次又一次的执行相同的代码块的时候就可以使用while

    步骤:

         0.先将while的格式写好

         1.找到需要重复执行的代码, 将需要重复执行的代码放到循环体中

         2.确定结束条件(确定条件表达式)

     

    使用举例:

        // 1.提示用户输入一个整数
        printf("请输入一个整数
    ");
    
        // 2.定义变量保存用户输入的整数
        int number = -1;
    
        // 3.接收用户输入的整数
        scanf("%i", &number);
    
        // 4.安全校验
        /*
        if (number <= 0) {
            return 0; // 结束函数
          // break; // 注意: break只能用在switch和循环结构中, 离开这两个东西没有任何效果
        }
         */
        while (number <= 0) {
            // 1.提示用户输入一个整数
            printf("请输入一个整数
    ");
    
            // 3.接收用户输入的整数
            scanf("%i", &number);
        }
    
        // 5.根据用户输入的整数计算结果
        int sum = 0;
        int count = 1;
        while (count <= number) {
    //      int sum = 0; // 注意, 不能写到这个地方, 因为写到这里是一个局部变量, 作用域是从定义的这一行开始, 一直到循环体结束, 每次进来都会重新定义一个
    //      int count = 1;
    
            printf("%i + %i
    ", sum , count);
            sum = sum + count;
            count++;
        }
    
        printf("sum = %i
    ", sum); 

      示例2:  

     // 获取1~100之间 7的倍数的个数并打印,并统计个数
        int number = 0;
        int count = 0;
        while (number <= 100) {
            printf("%i
    ", number);
            if (number % 7 == 0) {
                // 证明当前的数是7的倍数
                count++;
                printf("7的倍数是 %i
    ", number);
            }
            number++;
        }
        printf("sum = %i
    ", count); 

    还有哪些可以用循环呢

      什么密码输入错了3次后就给你锁了

      QQ加好友加几个就要验证码了

        …..

     

    你猜我多大了???

    #include <stdio.h>
    #include <stdlib.h> 
    
    int main(int argc, const char * argv[]) { 
    
       // 去和美女搭讪,美女要求猜出她的年龄她就和你交往
        // 美女给你3次机会猜她的年龄
        // 让用户输入一个年龄(代表着用户猜的年龄)
        // 让电脑随机产生一个年龄(代表美女的年龄)   
    
        int count = 3;
        // 随机生成美女的年龄
        int girl = -1;
        // 生成一个0~19岁的年龄
        girl = arc4random_uniform(20);
        //printf("girl = %d", girl);
        while (count > 0) {
            //    1.提示用户猜年龄
            printf("猜猜姐的年龄
    ");
            system("say age 
    ");
            //    2.接收用户输入的年龄
            int age = -1;
            scanf("%d", &age);
            //    4.判断是否猜中
            if (age > girl) {
                printf("姐有那么老吗?姐很生气!
    ");
                system("say no 
    ");
            }
            else if (age < girl)
            {
                printf("姐太开心了?但是还是不对哦!
    ");
                system("say no 
    ");
            }
            else
            {
                printf("你就是我的死冤家
    ");
                system("say yes 
    ");
                break;
            }
            count--;
        }    
    
        printf("注定孤独一生
    ");
        system("say fuck 
    ");    
    
        return 0;
    }                

    break     continue:

      break用于跳出整个循环

      continue用于跳出本次循环   直接进入下一次循环的条件判断

    do while 格式:

    do
     {
        语句;
        ...
     }while (条件表达式); 

    与while的区别:

       while如果条件表达式一开始就不满足, 那么循环体永远不会被执行

       do while如果条件表达式一开始就不满足, 同样会执行一次循环体

       也就是说: 无论条件表达式是否满足, do while始终会执行一次循环体,先干一次再说

     

     

  • 相关阅读:
    【POJ 1958】 Strange Towers of Hanoi
    【HNOI 2003】 激光炸弹
    【POJ 3263】 Tallest Cow
    【POJ 2689】 Prime Distance
    【POJ 2777】 Count Color
    【POJ 1995】 Raising Modulo Numbers
    【POJ 1845】 Sumdiv
    6月16日省中集训题解
    【TJOI 2018】数学计算
    【POJ 1275】 Cashier Employment
  • 原文地址:https://www.cnblogs.com/dx-230/p/4753601.html
Copyright © 2011-2022 走看看