第3章 感受(一)——3.5. Hello world 分支版
来源:互联网 发布:传奇霸业数据库 编辑:程序博客网 时间:2024/05/29 02:36
3.5.Hello world 分支版
上一版的Hello world中,我们实现了“人机交互”。在例子中,我先输入“志玲”、后来又输入“BOSS”。程序分别打印出对这两人的问好。
新的需求产生了!程序可不可以区分一下,当遇上志玲时,我们需要稍微有点的不同问候方式——至少和碰上BOSS的状况相比。
这段需求用自然语言描述一下:
“如果遇上的是志玲,我想说……;否则,我就说Hello! XXX。 XXX代表非志玲之外的任何人。”
3.5.1.流程控制-if
在C++中,前述的需求可以使用 if/else 语句实现。
if (条件)
{
//条件成立时,执行这里
}
else
{
//条件不成立,执行这里
}
3.5.2.修改Hello函数
创建一个新的C++控制台应用,项目名称为“HelloWorldIfElse”。由于我们将要在代码中直接输入汉字,因此请将main.cpp的文件编码改为“系统默认”(具体方法请参看“HelloWorld 中文版”)。
起始代码为“交互版”的HelloWorld。因此现有的Hello函数代码为:
void Hello(string const name)
{
cout << "Hello! " << name << "." << endl;
}
该函数接收到“名字”之后,就整齐划一输出:“Hello! XXX.”,并没有根据name是什么,而区别对待。
新代码为:
void Hello(string const name)
{
007 if (name == "志玲")
008 {
009 cout << "Hi! 志玲,志玲你好。你演小乔,好好棒呢~~" << endl;
010 }
011 else
012 {
013 cout << "Hello! " << name << "." << endl;
014 }
}
007 行,我们使用C++的等号操作符“==”来判断name是不是和“志玲”相等。
〖危险〗:相等判断操作符:==
注意,“==”是两个连续普通的“=”字符。在C++中,它用于判断左右两个数据是否相等。而单个=用于“赋值”,如果在该用到==的地方,不小心写成=,那么有可能会造成运行时才爆发的错误。
运行结果:
(图 18 分支版Hello World运行结果)
3.5.3.多级if-else
if-else 结构,当需多级判断时,可以连续使用,形成多级if-else结构。比如,如果想在前例中加入对“嘉玲”的判断,那么代码如下:
if (name == "志玲")
{
cout << "Hi! 志玲,志玲你好。你演小乔,好好棒呢~~" << endl;
}
else if (name == "嘉玲")
{
cout << "Hi! 嘉玲,嘉玲你好。恭喜你和小梁的喜事!" << endl;
}
else
{
cout << "Hello! " << name << "." << endl;
}
解读:
是“志玲”吗?
____是,……
不是?那看看是不是 “嘉玲”?
____是,……
再不是
____则……
〖现场作业〗:多级if-else练习
请在上述代码基础上,再加上一级if-else,用以判断name是否为“美玲”。
- 第3章 感受(一)——3.5. Hello world 分支版
- 第3章 感受(一)——3.1. Hello world 经典版
- 第3章 感受(一)——3.3. Hello world 函数版
- 第3章 感受(一)——3.4. Hello world 交互版
- 第3章 感受(一)——3.6. Hello world 循环版
- 第3章 感受(一)——3.2. Hello world 中文版
- 《白话C++》第3章 感受(一) 3.1 Hello world 经典版
- 《白话C++》第3章 感受(一) 3.3 Hello world 函数版
- 《白话C++》第3章 感受(一) 3.3 Hello world 交互版
- 第3章 感受(一)——3.7. Hello object 生死版
- 第3章 感受(一)——3.8. Hello object 成员版
- 第3章 感受(一)——3.9. Hello object 派生版
- 第3章 感受(一)——3.11. Hello object 封装版
- 《白话C++》第3章 感受(一) 3.2 Hello world 中文版
- 第3章 感受(一)——3.10. Hello object 多态版
- 第3章 感受(一)——3.12. Hello STL 向量篇
- 第3章 感受(一)——3.13. Hello STL 列表篇
- 第3章 感受(一)——3.14. Hello STL 算法篇
- redhat9+vmware 升级内核成功!
- Cable Modem工作原理
- Linux学习和知识拓展
- Hello Blog
- 数据库备份与还原
- 第3章 感受(一)——3.5. Hello world 分支版
- 试试上传一段代码
- 千奇百态的名山风景
- 第3章 感受(一)——3.6. Hello world 循环版
- C语言嵌入式系统编程修炼(一至六)--转载
- Oracle学习笔记[2] - shutdown之后不能startup mount的解决办法
- 【小技巧】如何修改 Lua 5.1 的引擎,让Lua支持中文变量名、混合变量名
- 深圳周边户外活动经典线路----转载
- 电脑硬件品牌图标