zoukankan      html  css  js  c++  java
  • C++循环语句

    今天介绍的是程序中三个基本控制结构(顺序,分支,循环)的最后一个:循环。

    只要三种基本的控制结构就能够表达用一个入口和一个出口框图表达的任何程序逻辑。所以在写程序的时候,要尽量避免使用GOTO语句,只用三种基本的控制结构。

    写循环语句要有下面三个步骤:

    • 需要重复的语句,即循环体
    • 用循环语句包含循环体
    • 循环条件,即什么时候跳出循环

    WHILE循环

    while循环的语法如下:

    while(loop-condition) {
        //loop body    
    }

    loop-condition是循环条件,是一个bool类型的变量。当loop-condition为true时,就会执行{……}内的循环体。举个例子:

    int sum = 0, i = 1;
    
    //循环4次,第5次时,i = 5,i < 5为false
    while (i < 5) {
        sum += i;
        i++;
    }
    
    cout << "5以内的数之和为:" << sum << endl;
    //结果为:5以内的数之和为:10

    如果你想要用户确认后再循环:

    char loop = 'Y';
    while (loop == 'Y') {
        //loop body
        cout << "执行" << endl;
        cout << "Do you want to continue? Yes(y or Y) or No(n or N): ";
        cin >> loop;
        //toupper()函数再<cctype>头文件中,把单个字符转换为大写
        loop = toupper(loop);
    }

    执行结果:

    DO-WHILE循环

    do-while的基本语法:

    do {
        //loop body
    } while (loop-condition);

    注意最后的分号!

    do-while循环和while基本相同,区别仅在于do-while先执行循环体,再判断条件,如果条件为真,则继续执行。

    上面的例子用do-while循环重构一下:

    int sum = 0, i = 1;
    
    //循环4次,第5次时,i = 5,i < 5为false
    do {
        sum += i;
        i++;
    }while (i < 5);
    
    cout << "5以内的数之和为:" << sum << endl;
    //结果为:5以内的数之和为:10

    FOR循环

    for循环是编程时最常用的循环格式,语法如下:

    for (initial-action; loop-condition; action-after-each-iteration) {
        //loop body
    }

    解释一下三个参数:

    initial-action是初始化动作,即初始化循环时需要的变量

    loop-condition是循环条件,为true时执行循环体

    action-after-each-iteration是每次迭代后的动作,即执行完一次循环体后的操作,一般是i++

    上面的例子用for循环重构一下:

    int sum = 0;
    
    //循环4次,第5次时,i = 5,i < 5为false
    for (int i = 1; i < 5; i++) {
        sum += i;
    }
    
    cout << "5以内的数之和为:" << sum << endl;
    //结果为:5以内的数之和为:10

    当然,如果要初始化的动作在前面写也可以:

    int sum = 0, i = 1;
    
    //此时i的作用域为整个生命周期,而不是for循环
    for (; i < 5; i++) {
        sum += i;
    }
    
    cout << "5以内的数之和为:" << sum << endl;
    //结果为:5以内的数之和为:10

    同理,如果没有后续执行的操作,action-after-each-iteration可以不写

    int sum = 0, i = 1;
    
    //循环4次,第5次时,i = 5,i < 5为false
    for (; i < 5;) {
        sum += i;
        i++;
    }
    
    cout << "5以内的数之和为:" << sum << endl;
    //结果为:5以内的数之和为:10

    break和continue

    这是C++的两个关键字。

    break用来跳出整个控制语句(如while,switch...),continue用来跳过一次迭代。

    (迭代就是当前执行的这一次)

    break:

    for (int i = 0;i < 10; i++) {
        if (i == 5) {
            //当i=5时,跳出整个循环
            break;
        }
    cout << i << endl;
    }

    执行结果:

    从数字5之后就没有了,因为跳出了整个大的循环

     continue:

    for (int i = 0;i < 10; i++) {
        if (i == 5) {
            //当i=5时,跳过本次循环
            continue;
        }
        cout << i << endl;
    }

    执行结果:

     只是没有数字五,因为i = 5时,跳过了本次循环

  • 相关阅读:
    描述下jvm的gc机制,常用的jvm调优方法,oom如何产生,如何处理oom 问题?
    大数据hadoop 面试经典题
    redis 个人理解和常用命令以及应用场景
    Hadoop 源码编译 step by step 最简洁的步骤
    Openstack 的介绍 ,安装以及简单应用
    Docker 的介绍 ,安装以及简单应用
    星型模型和雪花模型的应用场景
    php向js的函数内传递参数-用经纬度计算2点间的距离
    php-URL方法下载远程图片
    微信开发-js接口的使用无法使用分享功能的一些说明
  • 原文地址:https://www.cnblogs.com/bwjblogs/p/12619860.html
Copyright © 2011-2022 走看看