语句总是顺序运行的:第一条语句运行完了接着是第二条,第三条等等。这是最简单的情况,为了更好的控制语句的运行。程序设计语言提供了多种控制结构支持更为复杂的语句运行。我们就来看看C++ 提供的控制方式。

一、 while 语句

while 语句提供了循环运行功能。能够用 while 语句编写一个好玩的从 1 到 5(包含 5)的数数游戏:1+2+3+4+5

#include <iostream>

int main() {

int game_num= 0, val = 1;

//继续运行。直到value大于5:

while (val <= 5) {

// game_num + val 之后塞给game_num:

game_num += val;

++ val; // val加1

}

std::cout << "1到5这5个数的总和是:" << game_num<< std::endl;

return 0;

}

编译并运行后。将输出:

1到5这5个数的总和是: 15

怎么样?while的结构是不是非常easy?既简单又强大。

二、 for语句

for语句的出现是由于while语句有缺点: while 循环使用变量来控制循环运行次数。每次运行 while 语句。都要看看变量的值,运行循环体,然后再改变变量的值。再检查变量值,周而复始。

由于总是靠函数体中改变变量值来控制循环,有些麻烦。

C++ 语言定义了第二 种控制结构:for 语句。她简化了循环变量的控制逻辑。看看相同是上例中俺的样例:

#include <iostream>

int main() {

int game_num = 0;

for (int val = 1; val <= 5; ++val)

game_num += val;

std::cout << "1到5这5个数的总和是:" << game_num<< std::endl;

return 0;

}

看出来了没有?for 语句脑袋由三部分组成:一个初始化,一个条件,一个表达式。 在这个样例中,初始化语句是:

int val = 1;

初始化语句仅在进入 for 语句时运行一次。

条件: val <= 10

表达式: ++ val

总结一下这哥仨的用处:

1. 初始化val 为 1。

2. 測试 val 是否小于或等于 5。

3. 假设 val 小于或等于 5。则运行 for 循环体。把 val 加到 game_sum 中。

假设 val 大于 5。就退出循环。接着运行 for 语句体后的第一条语句。

4. val 加1。

5. 反复第 2 步,仅仅要条件为真,就继续运行for的循环体

好玩吧?简单吧?这两种结构都非常实用,是最普通的控制结构。

大家一定要掌握哟 ^_^

本文属原创。转载请注明出处。并标记以下内容,谢谢!


关注微信公众号:程序猿互动联盟(coder_online)

  • 编程新手输入数字 12345 获取QQ群。增加兴趣小组,让老鸟带你入门。

  • 编程老鸟输入数字 2 让我们一起畅聊技术。

更有(java/C/C++/Linux/Android)高手帮你解决难题。和你互动,讨论编程未来。

长按二维码识别关注程序猿互动联盟



关注后和技术大牛做朋友。还不赶快来!

声明:本文使用的图片部分来自网络

想要阅读很多其它高手原创技术文章,点击“阅读原文

C++ Primer高速入门之三:几种常见的控制语句的更多相关文章

  1. Kotlin入门(20)几种常见的对话框

    提醒对话框手机上的App极大地方便了人们的生活,很多业务只需用户拇指一点即可轻松办理,然而这也带来了一定的风险,因为有时候用户并非真的想这么做,只是不小心点了一下而已,如果App不做任何提示的话,继续 ...

  2. C++ Primer高速入门之五:有用的模板库

    更新:又一次排版代码格式 除上篇博客介绍的基本数据类型外,C++ 还定义了一个内容丰富的抽象数据类 型标准库. 包含 string 和 vector,它们分别定义了字符串和矢量(集合).string ...

  3. C++ Primer高速入门之六:数组和指针

    更新:勘误,delete [] 猪 我们知道,C语言以及早期的面向结构的语言差点儿都支持数组定义.比方整形数组int 女神[2].表示有俩数: 女神[0], 女神[1].她们都是整数. C++ 语言为 ...

  4. VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)

    VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)-软件开发-鸡啄米 http://www.jizhuomi.com/software/143.html   鸡啄米在上一讲中 ...

  5. Windows下FFmpeg高速入门

    本系列文章导航 Windows下FFmpeg高速入门 ffmpeg參数解释 mencoder和ffmpeg參数具体解释(Java处理视频) Java 生成视频缩略图(ffmpeg) 使用ffmpeg进 ...

  6. ElasticSearch 学习记录之ES几种常见的聚合操作

    ES几种常见的聚合操作 普通聚合 POST /product/_search { "size": 0, "aggs": { "agg_city&quo ...

  7. Tensorflow高速入门2--实现手写数字识别

    Tensorflow高速入门2–实现手写数字识别 环境: 虚拟机ubuntun16.0.4 Tensorflow 版本号:0.12.0(仅使用cpu下) Tensorflow安装见: http://b ...

  8. VS2010/MFC编程入门之三十九(文档、视图和框架:概述)

    前面几节讲了菜单.工具栏和状态栏的使用,鸡啄米本节开始将为大家讲解文档.视图和框架的知识. 文档.视图和框架简介 在VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)创建的单文档工 ...

  9. VS2010/MFC编程入门之三十七(工具栏:工具栏的创建、停靠与使用)

    鸡啄米在上一节教程中讲了工具栏资源及CToolBar类,本节继续讲解工具栏的相关知识,主要内容包括工具栏的创建.停靠与使用. 工具栏的使用 上一节中鸡啄米提到过,一般情况下工具栏中的按钮在菜单栏中都有 ...

随机推荐

  1. python 3 ---购物车练习

    # -*- coding:utf-8 -*-#Author Chen #定义商品列表List_of_commodities = [ ('Iphone',6888), ('Mac Pro',12888) ...

  2. IpHelper根据客户端IP进行网站分流

    public class IpHelper    {        // 核心方法:IP搜索       /// <summary>        /// 查找IP所属地区,确保web.c ...

  3. python基础-------模块与包(三)正则表达式

    re模块正则表达式 正则表达式常用符号: [ re模块使用方法]: match(string[, pos[, endpos]]) | re.match(pattern, string[, flags] ...

  4. 一致性hash算法以及其在分布式系统中的应用(转)

    初始架构

  5. JSON Web Tokens(JWT)

    现在API越来越流行,如何安全保护这些API? JSON Web Tokens(JWT)能提供基于JSON格式的安全认证.它有以下特点: JWT是跨不同语言的,JWT可以在 .NET, Python, ...

  6. StackExchange.Redis学习笔记(三)

    这一章主要写一些StackExchange.Redis的配置及不太经常用到的函数 数据库连接 下面是我的连接字符串,里面指定了地址,密码,及默认的数据库 Redis启动后默认会分成0-15个数据库,不 ...

  7. 基于树莓派的智能家居项目的设想与实现 Hestia

    注:本人内容的准确性仅限于笔者写该篇文章时的情况,不保证后续与实际项目代码一致.实时内容还请关注Github项目托管页面:https://github.com/GenialX/hestia-serve ...

  8. Unity3D游戏xlua轻量级热修复框架

    这是什么东西 前阵子刚刚集成xlua到项目,目的只有一个:对线上游戏C#逻辑有Bug的地方执行修复,通过考察了xlua和tolua,最终选择了xlua,原因如下: 1)项目已经到了后期,线上版本迭代了 ...

  9. sockt初级了解 感悟 一起打怪升级偶

    刚接触来谈谈对sockt基础的一点理解,多线性下次再发.也逛了逛博客,有一篇基础讲的停息在这推荐下sockt套接字编程全绍辉 首先贴下代码#服务器 import socket skt=socket.s ...

  10. 延迟执行之 Invoke 函数

    Invoke 函数需要继承 MonoBehaviour 类后才能使用. Invoke(string str,float a):a 秒后执行名为 str 函数(只会调用一次). Invoke(strin ...