我的问题很简单,如果无法实现相同的效果,下面的代码是否可以工作?
int day = 5;
String dayString;
switch (if (day > 0) {
case 1:
dayString = "Monday";
day++;
break;
case 2:
dayString = "Tuesday";
day++;
break;
case 3:
dayString = "Wednesday";
day++;
break;
case 4:
dayString = "Thursday";
day++;
break;
case 5:
dayString = "Friday";
day++;
break;
case 6:
dayString = "Saturday";
day++;
break;
case 7:
dayString = "Sunday";
day++;
break;
default:
dayString = "Invalid day";
day++;
break;
}
System.out.println(dayString);
输出应该是星期五,基本上我的问题是,您是否可以在相应语句的参数内放入if语句,while语句,while语句,for语句或do语句或do语句或其他语句。
上面的代码将不起作用...该代码中存在语法错误。您不能在switch的花括号内添加if条件...它期望一个变量来求值...这些条件是使用case语句给出的...要获得星期五作为输出,只需将变量“ day”放在开关括号内即可,例如this-> switch(day)
Java的语法具有许多不同的结构。这里特别相关的是expressions和statements。
表达式是具有值的东西。声明是做某事的指令。
if
是一个语句。它的一般语法为:
if (expression) statement
({}
也是一种语句,这就是为什么您可以使用花括号包围要执行的代码的原因。
[expression
必须是boolean
类型。
switch
也是一个语句。它的一般语法为:
switch (expression) {
// ...
}
因为开关需要在括号中使用表达式,所以不能在其中使用语句。