第29课 不太准的心理测试
不太准的心理测试(if、switch嵌套)
你参与过如下跳转方式的心理问答测试吗?
1.你喜欢游泳吗?
A.不喜欢(选择后跳转到第2题)
B.喜欢(选择后跳转到第4题)
2.你害怕水吗?
A.很害怕(选择后跳转到第3题)
B.一点点害怕(选择后跳转到第5题)
3.你喜欢下雨天吗?
A.喜欢(选择后跳转到第4题)
B.不喜欢(选择后跳转到第5题)
4.如果下雨,你更喜欢做什么呢?
A.穿雨衣出门(选择后跳转到第6题)
B.待在家里(选择后跳转到第5题)
5.你会喜欢玩游乐园的过山车吗?
A.喜欢(选择后跳转到第6题)
B.不喜欢(选择后结束问答,输出分析结果A)
6.你有没有忘记过东西?
A.经常忘记(选择后结束问答,输出分析结果B)
B.很少忘记(选择后结束问答,输出分析结果C)
这样的问答方式不同于往日的顺序做题,而是根据不同的选择跳转到不同的问题,具有灵活性和趣味性。请尝试运行下面的程序体验一下。




运行程序:
开始不太准的心理测试:
1.你喜欢游泳吗?
A.不喜欢
B.喜欢
请选择:A 2.你害怕水吗?
A.很害怕
B.一点点害怕
请选择:B
5.你会喜欢玩游乐园的过山车吗?
A.喜欢
B.不喜欢
请选择:A 6.你有没有忘记过东西?
A.经常忘记
B.很少忘记
请选择:B
你可能是一个注重细节、有条理并且喜欢稳定的人,通常能够很好地掌握自己的生活和事务,不太追求冒险或刺激。
自己编的纯属娱乐,没有科学道理,所以这是一个不太准的心理测试!
(1)#include:包含C++标准库中的输入输出流头文件,实现cout输出和cin输入。
(2)using namespace std:使用std命名空间,这样可以使用标准库命名空间中的元素而不需要在前面加上std::。
(3)int main():程序的主函数。
(4)int num=1:定义一个整数变量num,用于跟踪当前测试问题的编号。num的初始值为1,使得测试题从第1题开始,同时为case匹配做好对应。
(5)char select定义一个字符变量select,用于接收用户的选择。它和嵌套switch选项case匹配,同时也作为最后存储分析结果A、B、C的变量。
(6)bool go=true:定义一个布尔变量go,用于控制循环是否继续进行。当进行到第5、6题的时候,通过选项将go值改成false,以便跳出while循环。
●while(true)为真,循环继续。
●while(false)为假,循环停止。
(7)将题号switch嵌套在循环中,使得每次问答可以根据题号num进行匹配和跳转。
(8)最后的switch(select)设计在问答结束的循环外,根据用户的选择进行心理分析,并输出相应的分析结果。
巩固练习
(1)switch语句通常用于对什么类型的值进行条件判断?()
A.字符串
B.浮点数
C.数组
D.整数
(2)switch语句中的default标签通常用于什么目的?()
A.用于执行默认的情况
B.用于终止switch语句的执行
C.用于处理不匹配的情况
D.用于创建新的case(3)在一个幻想世界里,四个季节之间界限分明,每个季节都有其特殊的魔法和神秘的生物。作为一名勇敢的冒险
家,想知道当前是哪个季节,以便做好冒险的准备。
请编写一个程序,输入月份,输出季节,并告诉该季节的特点以及可能遇到的神秘生物:
①如果输入的月份是1、2或12,则输出“十二月到二月是冬季。在冬季,寒冷的天气可能会带来冰雪魔法,可能会遇到雪精灵”。
②如果输入的月份是3、4或5,输出“三月到五月是春季。春季充满生机,可能会有植物魔法,可能会遇到树精灵”。
③如果输入的月份是6、7或8,输出“六月到八月是夏季。夏季阳光明媚,可能会有火焰魔法,可能会遇到火精灵”。
④如果输入的月份是9、10或11,输出“九月到十一月是秋季。秋季可能有风暴魔法,可能会遇到风精灵”。