在java中是否可以将if语句转换为switch语句?
我不会将单个if语句转换为switch语句,但这是可以完成的。您需要为开关指定默认值。如果您正在使用许多If。。。其他声明将保证切换。
int month = 8;
String monthString = "";
if(month == 1)
{
monthString= "January";
}else if(month == 2)
{
monthString= "February";
}else if(month== 3)
{
monthString= "March";
}
etc....
可以这样写:
int month = 8;
String monthString;
switch (month) {
case 1: monthString = "January"; break;
case 2: monthString = "February"; break;
case 3: monthString = "March"; break;
case 4: monthString = "April"; break;
case 5: monthString = "May"; break;
case 6: monthString = "June"; break;
case 7: monthString = "July"; break;
case 8: monthString = "August"; break;
case 9: monthString = "September"; break;
case 10: monthString = "October"; break;
case 11: monthString = "November"; break;
case 12: monthString = "December"; break;
default: monthString = "Invalid month"; break;
}
它取决于if
中正在评估的内容以及您拥有多少此类相关的if
语句。
如果你有
if (i == 1)
{
function1 (i)
}
else
if (i == 2)
{
function2 (i)
}
if (i == 3)
{
function3 (i)
}
那么是的。
switch (i) {
case 1:
function1(i);
break;
case 2:
function2(i);
break;
case 3:
function3(i);
break;
}
如果您有多个评估,那么它会变得更难<代码>if(i==1)
首先,从技术上讲,它是一个开关块。其次,是的,这是可能的,但极为不必要。然而,如果你想这样做,这里有一种方法可以让你转换。。。
int theCase;
if (someVariable.equals(someString)) {
theCase = 1;
} else if (someVariable.equals(someOtherString)) {
theCase = 2;
} else {
theCase = 3;
}
switch (theCase) {
case 1:
//some code here
break;
case 2:
//some code here
break;
case 3:
//some code here
break;
}
当然,如果要比较字符串以外的内容,可以使用操作符。
这两者也是可以互换的,但前提是您使用chars
或int
并且只测试一个条件。
我是java编程新手,很难弄清楚这一点。 这是我的代码: 有没有办法将其转换为switch-case语句?
问题内容: 可以从python中的单行方法返回 寻找这样的东西 尝试过,并且语法无效 我可以轻松做到: 但只是好奇我是否可以将上述if语句合并为一行 问题答案: 可以在一行上编写标准的“ if”语句: 但是pep 8样式指南建议不要这样做: 通常不建议使用复合语句(同一行上有多个语句)
想改进这个问题吗 通过编辑此帖子,添加详细信息并澄清问题。 这是我的if语句。我只想写得更短。因为我认为这些是无效的。顺便说一句,每个if语句都是独立的。
问题内容: 告诉我 少于3个分支的交换机效率低下,请改用if语句。 这是为什么?为什么是3?他们如何定义效率? 问题答案: 因为语句是使用两个特殊的JVM指令和编译的。在处理很多案例时它们很有用,但是当您只有很少的分支机构时,它们会导致开销。 相反,一条语句被编译为典型的 …链,这些链速度更快,但在长分支链中使用时需要更多的比较。 您可以通过查看字节码来看到差异,无论如何我都不担心这些问题,如果有
是否可以在x86汇编语言中模拟if-statment(使用masm语法)?我想在x86汇编语言中做这样的事情,但我不确定应该使用哪个运算符来模拟if-ore语句。我应该使用指令,还是指令,还是其他指令?
switch 语句可以替代多个 if 判断。 switch 语句为多分支选择的情况提供了一个更具描述性的方式。 语法 switch 语句有至少一个 case 代码块和一个可选的 default 代码块。 就像这样: switch(x) { case 'value1': // if (x === 'value1') ... [break] case 'value2':