第001题. 这个switch输出的是个啥? 你可能会做错哦...

请写出下面代码的输出内容:

const test = 2
switch (test) {
  case 1:
    console.log(1)
  case 2:
    console.log(2)
  case 3:
    console.log(3)
  default:
    console.log('default')
}

各位大佬看完这几句代码, 可能会觉得智商受到了侮辱: are you kidding me ?? 问我这么简单的问题, 瞧不起谁呢??是觉得我的发型不够程序员吗? 最后肯定是输出 "2" 啊!

但是看似简单的地方, 却比较容易出错.
让我们运行一下这段代码, 看一下最后的输出结果:

最后的结果是: 2 3 default

为啥会这样呢?

如果大佬们再仔细看一下这段代码, 就会发现: 每个case语句中, 都没有进行break, 也就是说, 代码执行完了 case 2子句之后, 并没有跳出switch, 而是继续执行switch中的下一个语句, 接着打印出了3 default

看一下MDN是如何解释的:

可选的?break语句确保程序立即从相关的 case 子句中跳出 switch 并接着执行 switch 之后的语句。若?break?被省略,程序会继续执行?switch?语句中的下一条语句。

完.

以上内容同步更新到了我的公众号每天刷一题, 大佬, 来都来了, 关注下吧, 会不定期赠送学习资料的!

原文地址:https://www.cnblogs.com/guohaojintian/p/11610454.html

时间: 2024-08-09 21:46:49

第001题. 这个switch输出的是个啥? 你可能会做错哦...的相关文章

编程题:指针输出数组的灵活性。功能:输出数组中全部元素

#include<stdio.h> void main() { int *p,i; int a[5]={1,2,3,4,5}; p=a; printf("\n"); for(;p<a+5;p++) printf("%d\t",*p); } 编程题:指针输出数组的灵活性.功能:输出数组中全部元素,布布扣,bubuko.com

在 大家的做题热情实在是高 故开新帖继续做题 中 的 回复

本文 是  <做一道 高一 求 函数 值域 的 题>  https://www.cnblogs.com/KSongKing/p/12233398.html   的   续篇,  呵呵呵呵  . <做一道 高一 求 函数 值域 的 题>  里 做的 是 网友 暮色星辰ing (Suzuha)  先前发的 一个 贴 里的 题, 这个 帖 是 <高一狗流下了泪水 求大佬帮助>  ,  不过 这个 帖 已经 被 Suzuha  自己 删了,  据说是 “问题解决了,  就把 帖

Openjudge-NOI题库-对齐输出

题目描述 Description 读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们. 输入输出格式 Input/output 输入格式: 只有一行,包含三个整数,整数之间以一个空格分开. 输出格式: 只有一行,按照格式要求依次输出三个整数,之间以一个空格分开. 输入输出样例 Sample input/output 样例测试点#1 输入样例: 123456789 0 -1 输出样例: 123456789        0        -1 思路:这题简单,先统计三个数的位数,再在前面输出

编程题 -- 分组问题,输出公式.

编程题:命令行输入两个整数N 和 P. (N<=P). 程序输出满足以下条件的一系列公式:公式为: A1*B1 + A2*B2 + ... + An*Bn要求:公式需同时满足:A1*B1 + A2*B2 + ... + An*Bn = NA1+A2+..+An = P其中数列: A1 A2 ... An 为 >=1的整数数列.B1 B2 ... Bn 为 >=1的整数数列,且 满足:Bn>Bn-1多条公式为并列关系,无输出先后要求.该程序命名为grouping(分组). 有一批多种

POJ C++程序设计 编程题#2 输出指定结果一

编程题#2:输出指定结果一 来源: 北京大学在线程序评测系统POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 总时间限制: 1000ms 内存限制: 1024kB 描述 填写代码,使输出结果为 2 2 8 10 #include <iostream> using namespace std; class Number { public: int num; Number(int n): num(n) { } // 在此处补充你的代码 }; int ma

POJ C++程序设计 编程题#1 输出200

编程题#1:输出200 来源: 北京大学在线程序评测系统POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 总时间限制: 1000ms 内存限制: 1024kB 描述 使以下代码输出结果为200. #include<iostream> using namespace std; class Number { public: int num; Number(int n=0): num(n) {} // 在此处补充你的代码 }; int main() { N

OJ刷题之《输出不同进制的数》

题目描述 将十进制数1234按十进制输出 将八进制数1234按八进制输出 将十六进制数1234按十六进制输出 输入 无 输出 将十进制数1234按十进制输出 将八进制数1234按八进制输出 将十六进制数1234按十六进制输出 样例输入 无 样例输出 1234=1234D 01234=1234O 0x1234=1234H 提示 使用输出格式控制符 dec     oct     hex 输出第二行 01234=1234O    1234前是数字0,1234后是大写字母O 代码如下: #includ

OJ刷题之《输出A字打头的字符串》

Description 输出n个字符串,把其中以字母A打头的字符串输出. Input 第一行 n 第二行到第n+1行,每行一个字符串 Output A打头的字符串 Sample Input 3 Ada Bob Alice SampleOutput Ada Alice 代码如下: #include <iostream> #include <cstring> using namespace std; int main() { int i,n; string str[10]; cin&g

hdoj 3065 病毒侵袭持续中 【AC自动机 基础题】【输出每个模式串出现的次数】

病毒侵袭持续中 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8678    Accepted Submission(s): 3045 Problem Description 小t非常感谢大家帮忙解决了他的上一个问题.然而病毒侵袭持续中.在小t的不懈努力下,他发现了网路中的"万恶之源".这是一个庞大的病毒网站,他有着好多好多