第3章 感受(一)——3.5. Hello world 分支版

来源:互联网 发布:传奇霸业数据库 编辑:程序博客网 时间:2024/05/29 02:36
[回到目录]
白话C++

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是否为“美玲”。

[回到目录]
白话C++