我希望我的输入是三组字符之一,并且需要根据它所属的组来决定如何处理它。我正在尝试找出如何定义具有多种情况的开关这。这是我到目前为止所拥有的:
while(in.hasNextChar())
{
char test = in.nextChar();
List<Signal> out = new List<Signal>(0);
switch(test)
{
case '1','0','x','X':
out.add(fromString(test));
break;
case ' ','/t':
break;
default:
throw new ExceptionLogicMalformedSignal;
}
}
return out;
}
最佳答案
您的语法错误。您需要利用失败的优势:
switch(test) {
case '1':
case '0':
case 'x':
case 'X':
out.add(fromString(test));
break;
case ' ':
case '\t':
break;
default:
throw new ExceptionLogicMalformedSignal;
}
案例只是一个标签,与 goto
中使用的标签非常相似(这本质上是幕后发生的事情)。它不是一个声明,因为它本身不执行任何操作 - 它只是命名一个地址。因此,如果 test
为 '0'
,它可以愉快地继续执行 'x'
和 'X'
情况到达实际的语句代码,因为这些标签没有执行任何操作。只有打破
才能“结束”案件。
即使没有中断
,您实际上也可以在案例之间插入代码:
switch(test) {
case '1':
System.out.println("This is printed by case '1'");
case '0':
System.out.println("This is printed by both case '1' and case '0'");
break;
case 'x':
case 'X':
System.out.println("This is only printed by the Xs");
break;
default:
break;
}
关于java - java switch 中的多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29595758/