【发布时间】:2021-09-15 05:46:55
【问题描述】:
我想为area1、area2等确定一些端口写法。
void controlEvent(CallbackEvent event) {
if (event.getAction() == ControlP5.ACTION_CLICK) {
for (int i=1; i<13; i++){
switch(event.getController().getName()) {
case "Area" + str(i):
println("Button" + i + " Pressed");
if (port != null) port.write(i + "\n");
break;}
}
}
}
但我得到 “case 表达式必须是常量表达式” 错误。有没有办法在 switch-case 中使用 for 循环?如果不是,那么重写上面的代码最合乎逻辑的方法是什么?
【问题讨论】:
-
你可以试试
if(){...}else if(){...} -
您不能使用动态资源来索引切换案例。如果您的代码 sn-p 就是全部,则根本不需要 switch 语句。只需将参数传递给您想要执行的任何操作,或使用它来调用可以处理数据的单独函数。
-
if(event.getController().getName().equals("Area" + str(i))) {println("Button" + i + " Pressed"); if (port != null) port.write(i + "\n");}怎么样? -
使用一些正则表达式,这样你甚至不需要使用循环。
标签: java processing