#include <iostream.h> int main() { int x=3,y=3; switch(x%2) { case 1: switch (y) { case 0: cout<<"first"; case 1: cout<<"second"; break; default: cout<<"hello"; } case 2: cout<<"third"; } return 0; }
second third
hello
first second
hellothird
case语句后面没有break,顺序执行。
switch(x%2) {//switch(1) case1: switch(y) {//这里为毛是y,看错 case0:cout<<"first"; case1:cout<<"second";break; default: cout<<"hello"; }
那为什么不输出first呢
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
【解析】第一个 switch,x % 2 的结果为 1,所以进入第一个 switch 的 case 1;
然后进入第二个 switch,y 的值为 3,但是第二个 switch 中没有匹配的,所以执行 default 中的语句,输出 "hello",此时第二个 switch 执行结束,第一个 switch 的 case 1 执行完毕;
由于第一个 switch 的 case1 后没有 break,所以会继续向下执行 case 2,输出 "third";
【switch 语句知识点讲解】
更多C++基础专业知识讲解,点击链接即可查看
https://www.nowcoder.com/link/zxyl-cpp85