C++ Primer高速入门之三:几种常见的控制语句
语句总是顺序运行的:第一条语句运行完了接着是第二条,第三条等等。这是最简单的情况,为了更好的控制语句的运行。程序设计语言提供了多种控制结构支持更为复杂的语句运行。我们就来看看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高速入门之三:几种常见的控制语句的更多相关文章
- Kotlin入门(20)几种常见的对话框
提醒对话框手机上的App极大地方便了人们的生活,很多业务只需用户拇指一点即可轻松办理,然而这也带来了一定的风险,因为有时候用户并非真的想这么做,只是不小心点了一下而已,如果App不做任何提示的话,继续 ...
- C++ Primer高速入门之五:有用的模板库
更新:又一次排版代码格式 除上篇博客介绍的基本数据类型外,C++ 还定义了一个内容丰富的抽象数据类 型标准库. 包含 string 和 vector,它们分别定义了字符串和矢量(集合).string ...
- C++ Primer高速入门之六:数组和指针
更新:勘误,delete [] 猪 我们知道,C语言以及早期的面向结构的语言差点儿都支持数组定义.比方整形数组int 女神[2].表示有俩数: 女神[0], 女神[1].她们都是整数. C++ 语言为 ...
- VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)
VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)-软件开发-鸡啄米 http://www.jizhuomi.com/software/143.html 鸡啄米在上一讲中 ...
- Windows下FFmpeg高速入门
本系列文章导航 Windows下FFmpeg高速入门 ffmpeg參数解释 mencoder和ffmpeg參数具体解释(Java处理视频) Java 生成视频缩略图(ffmpeg) 使用ffmpeg进 ...
- ElasticSearch 学习记录之ES几种常见的聚合操作
ES几种常见的聚合操作 普通聚合 POST /product/_search { "size": 0, "aggs": { "agg_city&quo ...
- Tensorflow高速入门2--实现手写数字识别
Tensorflow高速入门2–实现手写数字识别 环境: 虚拟机ubuntun16.0.4 Tensorflow 版本号:0.12.0(仅使用cpu下) Tensorflow安装见: http://b ...
- VS2010/MFC编程入门之三十九(文档、视图和框架:概述)
前面几节讲了菜单.工具栏和状态栏的使用,鸡啄米本节开始将为大家讲解文档.视图和框架的知识. 文档.视图和框架简介 在VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)创建的单文档工 ...
- VS2010/MFC编程入门之三十七(工具栏:工具栏的创建、停靠与使用)
鸡啄米在上一节教程中讲了工具栏资源及CToolBar类,本节继续讲解工具栏的相关知识,主要内容包括工具栏的创建.停靠与使用. 工具栏的使用 上一节中鸡啄米提到过,一般情况下工具栏中的按钮在菜单栏中都有 ...
随机推荐
- python 3 ---购物车练习
# -*- coding:utf-8 -*-#Author Chen #定义商品列表List_of_commodities = [ ('Iphone',6888), ('Mac Pro',12888) ...
- IpHelper根据客户端IP进行网站分流
public class IpHelper { // 核心方法:IP搜索 /// <summary> /// 查找IP所属地区,确保web.c ...
- python基础-------模块与包(三)正则表达式
re模块正则表达式 正则表达式常用符号: [ re模块使用方法]: match(string[, pos[, endpos]]) | re.match(pattern, string[, flags] ...
- 一致性hash算法以及其在分布式系统中的应用(转)
初始架构
- JSON Web Tokens(JWT)
现在API越来越流行,如何安全保护这些API? JSON Web Tokens(JWT)能提供基于JSON格式的安全认证.它有以下特点: JWT是跨不同语言的,JWT可以在 .NET, Python, ...
- StackExchange.Redis学习笔记(三)
这一章主要写一些StackExchange.Redis的配置及不太经常用到的函数 数据库连接 下面是我的连接字符串,里面指定了地址,密码,及默认的数据库 Redis启动后默认会分成0-15个数据库,不 ...
- 基于树莓派的智能家居项目的设想与实现 Hestia
注:本人内容的准确性仅限于笔者写该篇文章时的情况,不保证后续与实际项目代码一致.实时内容还请关注Github项目托管页面:https://github.com/GenialX/hestia-serve ...
- Unity3D游戏xlua轻量级热修复框架
这是什么东西 前阵子刚刚集成xlua到项目,目的只有一个:对线上游戏C#逻辑有Bug的地方执行修复,通过考察了xlua和tolua,最终选择了xlua,原因如下: 1)项目已经到了后期,线上版本迭代了 ...
- sockt初级了解 感悟 一起打怪升级偶
刚接触来谈谈对sockt基础的一点理解,多线性下次再发.也逛了逛博客,有一篇基础讲的停息在这推荐下sockt套接字编程全绍辉 首先贴下代码#服务器 import socket skt=socket.s ...
- 延迟执行之 Invoke 函数
Invoke 函数需要继承 MonoBehaviour 类后才能使用. Invoke(string str,float a):a 秒后执行名为 str 函数(只会调用一次). Invoke(strin ...