我的博客原址关于更多BeanShell的博文请单击此处

在 BeanShell 中,switch 语句不仅仅可以接收数值类型的参数还能传入对象类型。比如,你可以 switch 日期和字符串,相当于使用了他们各自的 equals() 方法比较相等:

代码实例

dateobj = newDate();

switch( dateobj )

{

casenewYears:

break;

casechristmas:

break;

default:

}

运行效果

上例中,首先创建“Date”类型的对象“dateobj”,两个字符串,通过 switch 语句传入“dateobj”。

经 过第一个case的时候,“dateobj”对象与“newYears”字符串进行比较。由于一个是日期类型,另一个是字符串类型,所以 “dateobj”通过自带的“toString()”方法转换成字符串类型后与之进行比较。显然是不相等的,所以进入第二个case继续进行比较。

最后两个case都不匹配,所以进入default,打印出“dateobj”的信息。顺便提一下,print(对象)相当于print(对象.toString())。

再看如下的效果:

唯 一的不同就是将“newYears”的值改变为数字“2012”。这样“newYears”就默认成为数值类型的变量。运行后出现了Error,显然是在 进行第一次case的时候,作为日期类型的“dateobj”没有变为数值类型的方法,所以出现mismatch的错误。

再看两个例子:

“i”和“j”都是 Integer 类型的类类型变量,case后相等,可见比较的是变量的值。

“i”为 Integer 类型的变量,“j”为不带类型的数值变量,“z”为int类型的变量。两个case比较后都相等,打印出相应信息。

总结

如果 switch 中传入的参数类型与 case  中的一致,则直接对值进行比较;否则,转换成一致的类型再进行比较。

linux脚本中swith,BeanShell中switch语句相关推荐

  1. linux脚本添加source,shell中的source命令的巧妙用法

    首先,通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录.例如,当我们修改了/etc/profile文件,并想让它立刻生效,而不用重新登录,就可以使用source命令,如sourc ...

  2. eclipse中更改配置使得switch语句不出错

    分别点击: windows---preference--->java---->compiler--->error/waring---->potential programmin ...

  3. linux脚本编写计算器,Shell中编写简单计算器

    #!/bin/bash #2016-2-29 #于虎林 #思路如下 #1,判断有没有输入类容 #2,判断输入的是不是数值 #3,判断输入的运算符 #执行运算符操作 read -t 30 -p &quo ...

  4. c语言中point的用法_关于C语言Switch语句,先学这些技巧够不够?

    一.C语言中switch的用法 1.switch后面括弧内的[表达式],ANSI标准允许它为任何类型: 2.当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,否则,就 ...

  5. Java SE 12扩展Switch语句/表达式完整指南

    本文提供了Java SE 12扩展Switch语句/表达式的完整指南.文章详细介绍了扩展Java switch语句将其用作增强版switch语句或表达式.为帮助理解本文提供了具体案例. 本文要点 现在 ...

  6. 为什么不能在字符串上使用switch语句?

    此功能是否将在以后的Java版本中使用? 有人可以解释为什么我不能这样做吗,例如Java的switch语句的技术方式? #1楼 Groovy轻而易举: 我嵌入了groovy jar并创建了一个groo ...

  7. Python 为什么不支持 switch 语句?

    " 阅读本文大概需要 10 分钟. " 在这篇文章里,我们会聊一聊为什么 Python 决定不支持 switch 语句. 为什么想要聊这个话题呢? 主要是因为 switch 在其它 ...

  8. 用switch排两个数大小C语言,关于C语言Switch语句,先学这些技巧够不够?

    一.C语言中switch的用法 1.switch后面括弧内的[表达式],ANSI标准允许它为任何类型: 2.当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,否则,就 ...

  9. c语言case多种情况,switch语句中有多种情况

    有没有一种方法可以遍历多个case语句而不声明case value:重复? 我知道这可行: switch (value) { case 1: case 2: case 3: //do some stu ...

最新文章

  1. linux下find命令的使用和总结
  2. 【Docker】Docker操作常用命令
  3. 三个彩灯循环点亮程序_近百组彩灯点亮江畔,义渡灯会正式亮灯啦
  4. MySQL回闪_MySQL进行BINLOG回闪
  5. metrics类型 普罗米修斯_AspNet Core 下利用普罗米修斯+Grafana构建Metrics和服务器性能的监控...
  6. 【Vue】npm run serve 和 npm run dev 有什么区别
  7. HTML5:表单提交
  8. POJ_2117 Elcctricity (tarjan 求割点)
  9. jdk1.7 64位官方下载地址
  10. 在vue.js中实现a标签href tel的打电话功能
  11. C# 日期格式化的中的 正斜杠的问题
  12. python多元线性回归实例_利用Python进行数据分析之多元线性回归案例
  13. sass、scss、css、less
  14. 环回接口(loopback interface)
  15. 淘宝无货源与亚马逊无货源模式谁更好做?
  16. 基于DataEase的软件测试个人职业发展剧透
  17. 产品经理需求调研方法及注意事项
  18. telerik grid ajax,Telerik ajax 控件学习笔记 - Ajax
  19. 欧姆龙温控器参数笔记(一)
  20. 小唐说设计模式————策略模式篇

热门文章

  1. Python 3.6+Django开发入门小案例(自动变化的问候)完整步骤
  2. # 定义四边形_对特殊平行四边形核心梳理,拓展提升思维
  3. python中格式化_python的format格式化
  4. 多个key作为参数进行删除_作为开发人员这些Redis基础应该掌握
  5. 【数据结构----笔记3】插入排序算法之【直接插入排序】
  6. Linux关闭java命令,Linux系统关闭或重新启动主机的命令详解
  7. 将js对象转化为树形结构
  8. 力扣225. 用队列实现栈(JavaScript)
  9. ajax 请求_你了解前端出现Ajax跨域请求的原因吗?
  10. uni一t 说明书_不输特斯拉,站在UNI-T背后的长安「超级工厂」