java switch case 多条件 正确案例&错误案例

正确案例:
1.多条件下可以通过case 7: case 3: 执行条件或|,简而言之就是
if (type ==7 || type == 3){

}

                       case 0:
                            final String v1 = row.get(field).toString();
                            row.put(field, v1);
                            break;
                        case 1:
                            final Float v2 = Float.parseFloat(row.get(field).toString());
                            row.put(field, v2);
                            break;
                        case 7:
                        case 3:
                            final Long v3 = Long.parseLong(row.get(field).toString());
                            row.put(field, v3);
                            break;
                        case 11:
                        case 10:
                        case 6:
                        case 2:
                            final Integer v4 = Integer.parseInt(row.get(field).toString());
                            row.put(field, v4);
                            break;

2.错误案例: switch case 不支持 | 的方式执行!!!闭坑!!!,最终执行判定的时候导致所有都执行不成功!也没有报错提醒!!

  case 2|7:
                            final Integer v4 = Integer.parseInt(row.get(field).toString());
                            row.put(field, v4);
                            break;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
180 Java 设计模式及应用案例(第 2 版) public CellContext2(String strPhone, String name, float price){ this.strPhone = strPhone; this.name = name; this.price = price; } public int getMark(){ int mark = 0; if(price > ICellState.NORMAL_LIMIT) mark = NORMAL_STATE; else if(price < ICellState.STOP_LIMIT) mark = STOP_STATE; else mark = OVERDRAW_STATE; return mark; } public void setState(){ int curMark = getMark(); if(curMark == mark) return; mark = curMark; switch(mark){ case NORMAL_STATE: state = new NormalState();break; case OVERDRAW_STATE: state = new OverDrawState();break; case STOP_STATE: state = new StopState();break; } } public void save(float price){ this.price += price; } public void cost(int minute){ this.price -= ICellState.COST_MINUTE*minute; } public boolean phone(){ state.phone(this); return true; } } setState()方法设置当前手机用户状态,算法主要原理是:根据余额获取当前状态标识 curMark, 并与前一状态标识 mark 进行对比。若两者相等,表明是同一状态,则返回;否则根据 mark 标识确 定当前手机用户所处状态。 本例中实时设置状态有两种情况:第一种情况,打完电话后进行设置,这在三个具体状态类中 已经进行描述了;第二种情况,存款后进行设置,也就是说,存款后要注意调用一次 setState()方法。 13.4 应用示例 【例 13-1】计算机内存监控程序。 设计算机物理总内存为 total,空闲内存为 free,则有公式 free ratio= total ,表示内存空闲率。设 两个阈值为 high、mid,high>mid。若 ratio high,则空闲率相当高,表明内存处于"充裕"状态; 第 13 章 状态模式 181 若 mid ratio<high,则空闲率正常,表明内存处于"良好"状态;若 ratio<mid,则空闲率低,表 明内存处于"紧张"状态。 先看程序执行界面,如图 13-3 所示。 图 13-3 内存监测界面图 程序主要完成以下功能: 界面上可以输入阈值 high,mid,有"开始监测" "停止监测"按钮; 按字节显示总内存、空闲内存大小,显示空闲率; 显示当前内存状态,以及此状态的持续时间, 单位是小时。 很明显,界面由三个子面板组成:上方的参数控制面板、中间的数值显示面板、下方的状态面 板,因此主要完成这三个类,再加上主窗口类共四个类的编制即可。下面一一进行说明。 1.参数控制面板类 CtrlPanel class CtrlPanel extends JPanel{ JComponent c[] = {new JTextField(4),new JTextField(4), new JButton("开始监测"),new JButton("停止监测")}; boolean bmark[][] = {{true,true,true,false}, {false,false,false,true}}; ActionListener startAct = new ActionListener(){ //"开始监测"按钮响应 public void actionPerformed(ActionEvent e){ setState(1); //设置组件使能状态 int high = Integer.parseInt(((JTextField)c[0]).getText());//取出高阈值 int low = Integer.parseInt(((JTextField)c[1]).getText()); //取出低阈值 Container c = CtrlPanel.this.getParent(); //获
Java中,switch语句用于根据表达式的值选择要执行的代码块。在switch语句中,每个case表示一个可能的值,而default表示当没有匹配的case时要执行的代码块。 下面是一个没有使用break语句的switch语句的例子: ```java public class SwitchCaseExample2 { public static void main(String[] args) { int i = 2; switch (i) { case 1: System.out.println("Case1"); case 2: System.out.println("Case2"); case 3: System.out.println("Case3"); case 4: System.out.println("Case4"); default: System.out.println("Default"); } } } ``` 该代码的输出结果是: ``` Case2 Case3 Case4 Default ``` 在这个例子中,由于没有使用break语句,当i的值为2时,程序会执行匹配到的case 2代码块,并继续执行后面的case 3、case 4和default代码块。 而在带有break语句的switch语句中,每个case后面都必须使用break语句来终止该case的执行,否则程序会继续执行下一个case的代码块。 下面是一个带有break语句的switch语句的例子: ```java public class SwitchCaseExample2 { public static void main(String[] args) { int i = 2; switch (i) { case 1: System.out.println("Case1"); break; case 2: System.out.println("Case2"); break; case 3: System.out.println("Case3"); break; case 4: System.out.println("Case4"); break; default: System.out.println("Default"); } } } ``` 该代码的输出结果是: ``` Case2 ``` 在这个例子中,当i的值为2时,程序只会执行匹配到的case 2代码块,并在执行完毕后终止switch语句的执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值