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类,本节继续讲解工具栏的相关知识,主要内容包括工具栏的创建.停靠与使用. 工具栏的使用 上一节中鸡啄米提到过,一般情况下工具栏中的按钮在菜单栏中都有 ...
随机推荐
- Problem C: 是否回文数?
Description 定义Data类,有一个int类型的属性.定义其构造函数.setValue函数和isPalindrome函数,其中setValue函数用于设置属性值,isPalindrome用于 ...
- CentOS6.8系统下,ecipse下进行编辑操作,意外退出
错误情况:centos下打开eclipse软件,点击*.java或者*.pom软件卡死,命令行终端报错误信息,稍后eclipse自动退出. 错误信息: Java: cairo-misc.c:380: ...
- Javascript实现简单跨域调用
什么是JSONP? 1.一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面.动态网页.web服务.WCF,只要是跨域请求,一律不准: 2.不过我们又发现,Web页面 ...
- 无限分级Repeater递归实现:读取一次数据库,使用LINQ2SQL技术,支持排序&显示隐藏
预览效果图: Selenium 数据库结构: id(int) classname(string) parentid(int) sort(int用于显示与排序) 1 家居 0 1 2 家电 0 ...
- CLR类型设计之属性
在之前的随笔中,我们探讨了参数,字段,方法,我们在开始属性之前回顾一下,之前的探讨实际上串联起来就是OOP编程的思想,在接下来的文章中,我们还会讨论接口(就是行为),举个例子:我们如果要做一个学生档案 ...
- linux操作系统基础篇(三)
1.cat命令 cat除了可以用来查看文本文档还可以将两个文本文档纵向合并到另外一个文本文档中 比如 cat /etc/passwd /etc/group > 1.txt 2. 归纳了所有的压缩 ...
- 什么是Node.js?带你初识Node
什么是Node.js Nodejs是一个基于Chrome v8引擎的JavaScript运行环境 Node.js使用了一个事件驱动,非阻塞式I/O的模型,使其轻量又高效. Node.js 的包管理器 ...
- tornado+WSGI+Apache
1.原理 2.安装mod_wsgi http://pan.baidu.com/s/1sjsccWH configure的时候会找对应的python脚本,默认是/usr/bin/python 生成mod ...
- 【python】__new__和__init__区别
原文:http://blog.csdn.net/cnmilan/article/details/8849680 __new__:创建对象时调用,返回当前对象的一个实例__init__:创建完对象后调用 ...
- 手动安装Eclipse的PyDev插件,重启无效
想好好学习Python,又不想只用Emeditor开发,于是想到了Eclipse.之前配置过PyDev,很久没用,就放下了.这次重新配置,遇到了不少问题总结如下: 第一,使用网址自动更新.从网上搜了很 ...