全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

Java中switch条件语句、switch语句括号中的值

发布时间:2023-03-21 17:19:00
发布人:软件测试

Java中switch条件语句

  Java中switch条件语句、switch语句括号中的值可不可以是null,case值可不可以是nul...

  Java的switch语句与if-else语句虽然有相似的用途,但它们在语法和实现上有很大的不同。

  switch语句通过比较某个表达式的值,从而选择要执行的代码块。switch语句中的每个case子句可以表示一种不同的情况,这些情况通常是针对同一个表达式的不同取值。当某个case子句的值与表达式的值匹配时,该子句中的代码块将被执行,然后程序将跳出switch语句。

  相比之下,if-else语句的比较通常是基于条件表达式的真或假值来执行代码块。如果条件表达式为真,则执行if语句中的代码块;否则,执行else语句中的代码块。if-else语句还可以使用else if子句来实现多个条件的比较。

  因此,虽然Java的switch和if-else语句都可以用于执行特定的代码块,但它们在语法和实现上有很大的不同,不能简单地将switch视为if-else的语法糖。

  接下来给大家讲讲:if与switch的异同点。

  相同点

  ●if和switch都是Java里的分支选择语句,它俩都属于条件分支语句;

  ●很多时候,if和swich可以实现的效果类似。

  不同点

  ●switch结构只能处理等值条件判断的情况,且条件必须是整型、枚举变量或字符型变量;

  ●多重if选择结构没有switch结构的诸多限制,特别适合某个变量处于某个连续区间时的情况;

  ●if比switch应用范围更广、更灵活。if可以实现的条件判断,switch不一定能够实现;switch可以实现的条件判断,if肯定可以实现。

  ●if 在应用中更为常见,但switch的结构更清晰。

  ●switch使用查找表比对的方式,使得case的条件必须是连续的常量,if语句则没有这些限制。

  ●一般情况下,switch比if-else效率更高。因为switch内部使用了Binary Tree算法,不管有多少个case,都只计算一次值,直接跳转,不需逐个比较查询,除非是if-else的第一个条件就为true。

  ●switch的效率其实与分支数无关。只有当分支比较少时,if语句的效率才比switch高,因为switch有跳转表。当分支较多时,推荐使用switch语句。

  刚入门的朋友们还需要清楚一点就是switch条件语句中括号中的值不能是null,如果有朋友试图将null传递给switch语句,则会在运行时引发NullPointerException。

  而对于case值,可以使用null。但是,需要注意的是,如果在switch语句中使用null,必须在case语句中进行特殊处理。这是因为如果case语句中的值为null,将无法与switch语句中的null进行匹配。因此,可以将null值作为默认情况处理,如下所示:

  switch(value){

  case "a":

  // 处理a的情况

  break;

  case "b":

  // 处理b的情况

  break;

  default:

  // 处理null或其他情况

  break;

  }

  在上面的示例中,如果传递null值,则将执行默认情况下的代码块。

  刚入门的朋友们一定要好好区分哦,可以把这个知识点加到自己的学习笔记中去哦!!

相关文章

python写入json文件?

python写入json文件?

2023-11-02
vscode设置tab为4个空格?

vscode设置tab为4个空格?

2023-11-02
更新pycharm?

更新pycharm?

2023-11-02
anaconda每次打开都要安装?

anaconda每次打开都要安装?

2023-11-02

最新文章

武汉新媒体行业公司排名

武汉新媒体行业公司排名

2023-11-01
武汉新媒体就业现状好吗

武汉新媒体就业现状好吗

2023-11-01
武汉全媒体行业发展现状及趋势

武汉全媒体行业发展现状及趋势

2023-10-31
武汉全媒体现状

武汉全媒体现状

2023-10-31
在线咨询 免费试学 教程领取