![C++面向对象程序设计](https://wfqqreader-1252317822.image.myqcloud.com/cover/787/31729787/b_31729787.jpg)
上QQ阅读APP看书,第一时间看更新
2.4.1 分支结构
在处理问题时,我们常常需要对情况进行判断,然后作出选择。在程序中如何实现这种判断与选择呢?首先,我们需要将选择操作的特征进行抽象,可以分为二选一的情况,以及面临多种选择的情况。即首先判断某种条件是否成立,然后根据条件从两个分支中选择一个。或者根据某个表达式的结果值,决定从多条分支中选择一条路径。但是选择往往不是只做一次,在解决问题的整个过程中经常需要多次进行选择,通过分支结构的嵌套可以实现。
1.用if语句实现选择结构
if语句是专门用来实现选择型结构的语句,其执行规则为,根据表达式是否为true,有条件地执行一个分支。常见的if语句的形式有:
(1)单分支结构
![](https://epubservercos.yuewen.com/FB0D97/17180254305314206/epubprivate/OEBPS/Images/img00041001.jpg?sign=1738241820-ZjqrI0ROLFFQmlcnET89kKWRHDViTfg9-0-9581cea0b10d358f840db7a8e7cb90f8)
(2)两分支结构
![](https://epubservercos.yuewen.com/FB0D97/17180254305314206/epubprivate/OEBPS/Images/img00041002.jpg?sign=1738241820-dF8UYAWCTXTZoTvHHVdLobTnsJ29qfJ1-0-ec1f07ed827fd739f55df9b97e40b249)
(3)多分支结构
![](https://epubservercos.yuewen.com/FB0D97/17180254305314206/epubprivate/OEBPS/Images/img00041003.jpg?sign=1738241820-xgzE2CV9z24v0ZJacudbf27TkcXDLnzg-0-4460b3039091af6312a995d6a83fadef)
【例2-7】输入两个整数,比较两个数的大小。
源代码:
![](https://epubservercos.yuewen.com/FB0D97/17180254305314206/epubprivate/OEBPS/Images/img00041004.jpg?sign=1738241820-Ac5yGNGfqOEwjPr3RuDBvfhNGao7PTd0-0-a48bde8877731534eef8b408a3161023)
![](https://epubservercos.yuewen.com/FB0D97/17180254305314206/epubprivate/OEBPS/Images/img00042001.jpg?sign=1738241820-fJZ8q2WALIv69YWLjE52aXj0by7923Ih-0-5aa80580751828df3587d2286ab68ca4)
程序运行结果1:
Enter x and y:5 8
x < y
程序运行结果2:
Enter x and y:8 8
x=y
程序运行结果3:
Enter x and y:12 8
x > y
2.Switch语句
在有的问题中,虽然需要进行多次判断选择,但是每一次都是判断同一表达式的值,这样就没有必要在每一个嵌套的if语句中都计算一遍表达式的值,switch语句专门用来解决这类问题。
switch语句的语法如下:
![](https://epubservercos.yuewen.com/FB0D97/17180254305314206/epubprivate/OEBPS/Images/img00042002.jpg?sign=1738241820-bLvyrFWopGdQCBzAz6BZhnn7am6rVngz-0-3c81738e1b05cdb0629b94614769e485)
expres是一个表达式,case后面的expresl,expres2等都是常量表达式,是expres计算结果的一个可能值,default语句代表所有的case情况都不满足时,程序执行的语句。
【例2-8】输入一个0~6的整数,转换成星期输出。(switch语句的应用)。
源代码:
![](https://epubservercos.yuewen.com/FB0D97/17180254305314206/epubprivate/OEBPS/Images/img00042003.jpg?sign=1738241820-Zj8Rd0Fk1OwtAkCO5b1orcfsvw2VQaW7-0-4c75b0b84d1ab1b70b24082253f111ed)
![](https://epubservercos.yuewen.com/FB0D97/17180254305314206/epubprivate/OEBPS/Images/img00043001.jpg?sign=1738241820-sU8k4n6811SUHPuHKDLyeeYNQ1WhAVYk-0-481b1dab50414b0bde81afa8f39b4790)
运行结果:
6
Saturday