首页 > 编程语言 > 详细

c语言-while 循环结构

时间:2020-05-19 23:37:33      阅读:72      评论:0      收藏:0      [点我收藏+]

while 循环

  • 格式: while(条件表达式){

    ? 代码块

      		}
    
  • 应用场景:需要反复执行某一段代码的时候.

  • while结构的执行顺序:条件表达式成立,执行代码块的代码,然后再回到条件表达式成立再次执行代码块(循环体),直到条件表达式不满足就不执行了

  • 方法:

    • 1,找到需要重复执行的代码,将此代码放到循环体中
    • 2,确定结束条件
  • 死循环:

        // 死循环,因为条件表达式是为真的,非 0 既真,所以会一直执行发射子弹的语句
    //    while (1) {
    //        printf("发射子弹");
    //    }
    
  • 确定好条件

        // 那我现在只发射 100 发子弹
        int num = 100;
        while (num > 0) {
            printf("发射第%i 发子弹\n",num);
            --num;
        }
    
    //    while (num > 0) {
    //        printf("发射第%i 发子弹\n",num);
    //        --num;
    //    }
    
  • 练习题

    • 累加思想
    // 练习
        // 提示用户输入一个正整数数,计算1+2+3+n 的和
        // 1,先分析需求,分析完再开始写代码
        // 2,一般情况下企业开发,不会直接实现复杂的代码,而是x实现一个简单的功能
        
        // 用户输入的是 5,
        // 1    +2  +3  +4  +5
        // 0+1
        //      1+1
        //          2+1
        //
        /*
        printf("请您输入一个正整数,以回车结束\n");
        int inputNum = 0;
        scanf("%i",&inputNum);
        int sum = 0;
        while (inputNum > 0 ) {
            sum = sum + inputNum;
            inputNum--;
        }
        printf("计算后的结果:%i",sum);
        */
        
        
        printf("请您输入一个正整数,以回车结束\n");
        // 顶一个变量接收用户输入的值
        int number;
        scanf("%i",&number);
        // 定义一个变量保存累加的值
        int sum = 0;
        // 定义一个变量保存每次相加的值,每次相加值不是固定的
        int count = 1;
        // 计算第一次相加的值
    //    sum = sum + count;
    //    count++;
    //    // 计算第二次相加的值
    //    sum = sum + count;
    //    count++;
        // 所以确定重复的代码就是这两行
        while (count <= number) {
            printf("sum = %i + %i\n",sum,count);
            sum = sum + count;
            count++; // 每次相加的值都会加 1 的
        }
        printf("sum 的值是%i",sum);
        
        // 注意不能把定义变量写在 while 循环中,写在了 while 循环中变量的作用域遇到大括号就结束了,然后每次执行循环体的内容又会重新定义变量
    
    • 练习 1-1 增加安全验证
        
        // 增加安全校验(错误示范)
        
        /*
        printf("请您输入一个正整数,以回车结束\n");
        // 顶一个变量接收用户输入的值
        int number;
        scanf("%i",&number);
        if (number < 0){
            // return 0; // 这个时候写了 return,那么如果条件成立,后面的代码就不会执行了
            // break; // break 语句是在 switch 语句和循环语句中使用,离开这两个都没有任何效果
        }
        // 定义一个变量保存累加的值
        int sum = 0;
        // 定义一个变量保存每次相加的值,每次相加值不是固定的
        int count = 1;
        while (count <= number) {
            printf("sum = %i + %i\n",sum,count);
            sum = sum + count;
            count++; // 每次相加的值都会加 1 的
        }
        printf("sum 的值是%i",sum);
        */
        
        // 将 whiley 循环放进 if 语句中
        /*
        printf("请您输入一个正整数,以回车结束\n");
        // 顶一个变量接收用户输入的值
        int number;
        scanf("%i",&number);
        if (number > 0){ // 如果用户输入的是一个大于 0 的数,将 while 循环放进 if 语句中
            // 定义一个变量保存累加的值
            int sum = 0;
            // 定义一个变量保存每次相加的值,每次相加值不是固定的
            int count = 1;
            while (count <= number) {
                printf("sum = %i + %i\n",sum,count);
                sum = sum + count;
                count++; // 每次相加的值都会加 1 的
            }
            printf("sum 的值是%i",sum);
        }
         */
        int sum = 0;
        int count = 1;
        int number = -1;
        while (number < 0) { // 此时 number 小于0,执行此循环体,
            printf("请输入一个正整数,以回车结束");
            scanf("%i",&number); // 输入的 number 值再次判断是否小于 0,如果小于零那就行执行u循环体
        }
        
        while (count<= number) {
            sum = sum + count;
            count++;
        }
        printf("sum = %i\n",sum);
    
    • 计数器思想
        // 获取 1-100之间,7 的倍数个数,并统计有多少个
        // 定义一个变量,保存出现了多少个 7 的倍数
        int count = 0;
        // 定义一个变量保存 1-100 之间数,用这个变量每次除以 7,取余数
        int number = 1;
        // 条件表达式是,1-100 之间的小于总值 100
        while (number <= 100 ) {
            // 如果 number 的值模以 7 是 0 的话代表是可以整除的,此时将 count 加 1
            if (number % 7 == 0){
                count++;
                printf("第%i个 7 的倍数是:%i\n",count,number);
            }
            number++; // 每次循环都要将 number 的值加一,再次y循环
        }
    
  • 修改相同变量的变量名

    • command+control+e,此时相同的变量就会被选中,然后直接修改值就可以了
    // 帅哥下向美女要陌陌号,
    // 美女要求男生t猜她的年龄,给这个男生三次机会
    // 分析:男生猜的年龄,女生的年龄(随机数),三次机会  --->三个变量
    int girlAge;
    int age;
    int count = 0;
    girlAge = arc4random_uniform(20); // 随机一个 0-20 的数,不包含 20
    printf("这是随机的女孩的年龄:%i\n",girlAge); // 打印一下随机的女孩年龄
    while (count < 3) {
        printf("请输入你猜的年龄,以回车结束\n");
        scanf("%i",&age); // 接收用户输入猜的女孩年龄
        if (age == girlAge){ // 如果两个值相等
            printf("恭喜你猜对了\n");
            break; // 猜对了就跳出循环
        }else
        {
            printf("猜错了,你还剩下%i个机会\n",2-count);
        }
        
        count++;
    }
    
  • while 循环注意点
    • 1,任何数值都有真假性
    • 2,while 和 if 语句一样,也可以省略大括号,只管后面的第一条语句
    • 3,分号也是一条语句,是一个空语句
    • 4,while 循环语句中不要定义变量
    • 5,注意条件表达式,避免死循环

c语言-while 循环结构

原文:https://www.cnblogs.com/shanshan-test/p/12920223.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!