物联网/嵌入式工程师
重磅升级:新增硬件电路设计与实战,让你软硬通吃,同级PK无敌!行业风口、政策倾斜,新晋热门高薪不内卷!0基础一站式就业完整路径,抢占先发优势!
宋江和两个公人听了这首歌,都酥软了。宋江又想道:“他是唱耍。”三个正在那里议论未了,只见那梢公放下橹,说道:“你这个撮鸟,两个公人,平日最会诈害做私商的人,今日却撞在老爷手里!你三个却是要吃板刀面?却是要吃馄饨?”宋江道:“家长休要取笑!怎地唤做板刀面?怎地是馄饨?”那梢公睁着眼道:“老爷和你耍甚鸟! 若还要吃板刀面时,俺有一把泼风也似快刀在这船板底下,我不消三刀五刀,我只一刀一个,都剁你三个人下水去;你若要吃馄饨时,你三个快脱了衣裳,都赤条条地跳下江里自死。”
那么请问,如何用 C++ 帮助宋江来抉择,到底是吃板刀面还是要吃馄饨?
这时候我们就需要用到 if 了,在 C++ 中,用 if 来进行多分支程序的编写,像宋江这时候就是典型的多分支结构,选板刀面,被砍,选馄炖,被推到江里。
#include <stdio.h> int main(int argc,char **argv) { bool bandaomian = true; // 板刀面 bool hundun = false; // 馄炖 if(bandaomian){ // 宋江被砍 } if(hundun){ // 宋江跳江 } return 0; }
上面的程序中,我们用两个 bool 变量来作为宋江的选择。if 语句接受一个 bool 类型的变量,当这个 bool 变量为 true 的时候,程序就会进入到 if 的从句中,如果是 false,那么 if 的从句将不会执行。
但是上面的程序有一个问题,那就是当 bandaomian 和 hundun 都是 true 的时候,程序仿佛会让宋江先被砍,然后再跳江。常识告诉我们,人被砍了以后大概率是不能跳江的,那么这里就有可能会有隐藏的 Bug。
我们其实可以这样写这段代码,用一个 bool 类型来作为宋江的选择。true 表示板刀面,false 表示馄炖。在 if 判断的时候,我们还可以使用 else 来配合 if 来完成“否则”的结构。
#include <stdio.h> int main(int argc,char **argv) { bool songjiang_style = true; // 板刀面 if(songjiang_style){ // 宋江被砍 } else { // 宋江跳江 } return 0; }
这样写,就不会有问题了,不是被砍就是跳江,被安排得明明白白。
在上面的案例里,可怜的宋江只有两种选择,所以用 if - else 就能很好的解决问题。但是实际生活中,我们可能要面临更多的分之结构,这就需要我们引入 else if。
else if 也是搭配 if 使用的,在 if 为 false 的时候,else if 可以进行进一步的判断,而且 else if 可以出现多个。
我们就使用我们之前介绍过的枚举类型,来看看 else if 的使用。
#include <stdio.h> enum Week { Mon, // 星期一 Tue, // 星期二 Wed, // 星期三 Thu, // 星期四 Fri, // 星期五 Sat, // 星期六 Sun, // 星期日 }; int main(int argc,char **argv) { Week week = Week::Fri; if(week == Week::Mon) { printf("Mon\n"); } else if(week == Week::Tue) { printf("Tue\n"); } else if(week == Week::Wed) { printf("Wed\n"); } else if(week == Week::Thu) { printf("Thu\n"); } else if(week == Week::Fri) { printf("Fri\n"); } else if(week == Week::Sat) { printf("Sat\n"); } else{ printf("Sun\n"); } return 0; }
请验证,完成请求
由于请求次数过多,请先验证,完成再次请求
打开微信扫码自动绑定
绑定后可得到
使用 Ctrl+D 可将课程添加到书签
举报