【共读Primer】4.[1.4] 控制流 Page10

三种流程控制的书写方法如下:

while(条件) // 直到条件为假(false) 否则一直循环执行大括号内的代码
{
    执行代码
}

for(初始化; 条件; 表达式) // 首先执行一次初始化,然后在条件为真的情况下循环执行大括号内的代码,并在每次执行完代码后执行一次表达式
{
   执行代码 
}

if(条件) // 从上到下查找每一个条件,直到某个条件为真则执行相应的代码块,其他代码块则跳过
{
   执行代码
}
else if(条件)
{
    执行代码
}
else
{
    执行代码
}

下面来详细的给出几个例子,和编译运行的具体流程,方便理解:

一、 while循环进行累加计算

#include <iostream>
int main()
{
    int sum = 0, val = 1;
    // 只要val的值小于等于10,while循环就会持续执行
    while(val <= 10)
    {
        sum += val; // 将sum + val 赋予 sum
        ++val;        // 将val加1
    }
    std::cout << "Sum of 1 to 10 inclusive is " << sum << std::endl;
    return 0;
}

这里写图片描述

二、for循环进行累加计算

#include <iostream>
int main()
{
    int sum = 0;
    // 从1加到10
    for(int val = 1; val <= 10; ++val)
    {
        sum += val; // 等价于 sum = sum + val
    }
    std::cout << "Sum of 1 to 10 inclusive is " << sum << std::endl;
    return 0;
}

这里写图片描述

三、使用循环读取位置数量的数据

#include <iostream>
int main()
{
    int sum = 0, val = 0;
    // 读取数据直到遇到文件尾,计算所有读入的值的和
    while(std::cin >> val)
    {
        sum += val; // 等价于 sum = sum + val
    }
    std::cout << "Sum is: " << sum << std::endl;
    return 0;
}

这里写图片描述

代码运行过程中的文件结束符(^Z) 使用键盘CTRL+Z输入,如果在linux或macOS下使用CTRL+D输入

四、计算在输入中任意数字连续出现的次数,直到出现文件结束符号

#include <iostream>
int main()
{
    // currVal 是我们在统计的数;我们将读入的新值存入val
    int currVal = 0, val = 0;
    // 读取第一个数,并确保确实有数据可以处理
    if(std::cin >> currVal)
    {
        int cnt = 1;
        while(std::cin >> val)
        {
            if(val == currVal)
            {
                ++cnt;
            }
            else
            {
                std::cout << currVal << " occurs " << cnt << " times" << std::endl;
                currVal = val;
                cnt = 1;
            }
        } // while循环在这里结束
        // 记住打印文件中最后一个值得个数
        std::cout << currVal << " occurs " << cnt << " times" << std::endl;
    } // 最外层的if语句在这里结束
    return 0;
}

这里写图片描述

流程控制主要就是以上的三种,当然还有switch,书本以后的内容会提到。

这些流程控制单独讲起来都非常的简单,但是在实际的使用中就会有各种各样的难点。

所以要牢牢掌握基本的规则,才能在以后的运用中做到心中有码。

在这里还有一个问题和大家提及一下,那就是代码风格,从当前的4篇代码中大家可以看出我基本上遵循了同一种缩进的风格。

并且在空格的地方也能做到位置一致。

我在这里说的意思并不是要大家都遵循我的风格,而是应该找到一种自己适合的代码风格,并且一直遵守它

如果有初学的同学按照我的代码去边已执行了,但是没有成功的,请认真检查代码,然后将编译报错和信息一并发到留言区,我们来讨论解决这个问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值