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

白话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++
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南郁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值