【发布时间】:2018-01-03 11:10:16
【问题描述】:
我最近遇到了和这个有点类似的情况。
Scanner sc = new Scanner(System.in);
int a = sc.nextInt(), ... , g = sc.nextInt(), x = sc.nextInt(), y = sc.nextInt(), z;
z = x * y;
switch (z) {
case a : //print something
break;
.
.
.
case g : //print something
break;
default : //print something
break;
}
我遇到了所有案例标签的错误。我检查了一些教程,并没有得到所有的答案。我需要知道是否可以使其与 switch 语句一起使用,因为这是我必须使用的约束。
【问题讨论】:
-
简单:你不能在那里使用变量。您必须使用固定值或 if-else 语句
-
"需要常量表达式" 很有表现力,它需要一个常量,而不是变量
-
case标签使用编译时常量表达式 (docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.28),您不能使用动态值。 -
@NishanthRao 再次:不。这不会编译。如果你需要比较变量,你会被 if-else 语句困住
-
如果 a==g==1,您希望发生什么?
标签: java switch-statement conditional