Java 是否可以将'if'语句转换为'switch'语句?

Java 是否可以将'if'语句转换为'switch'语句?,java,Java,是否可以将if语句转换为java中的switch语句?首先,从技术上讲,它是一个switch块。第二,是的,这是可能的,但极不必要。然而,如果你想这样做,这里有一种方法,你可以使转换 int theCase; if (someVariable.equals(someString)) { theCase = 1; } else if (someVariable.equals(someOtherString)) { theCase = 2; } else { theCase

是否可以将
if
语句转换为java中的
switch
语句?

首先,从技术上讲,它是一个switch块。第二,是的,这是可能的,但极不必要。然而,如果你想这样做,这里有一种方法,你可以使转换

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
ints
并且只测试一个条件时。

首先,从技术上讲,它是一个开关块。第二,是的,这是可能的,但极不必要。然而,如果你想这样做,这里有一种方法,你可以使转换

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
ints
,并且只测试一个条件。

这取决于
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)和(&(j==2)
将更难在switch case块中表示。

这取决于在
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;
}

如果您有多个评估,那么它会变得更难<代码>如果(i==1)和(j==2)将很难在开关盒块中表示。

根据oracles网站上的这个示例,是的。是的,你可以。这是链接


这取决于你想打字多少。您可以使用仅具有一个条件的switch语句,也可以使用处理多个条件的if语句

根据oracles网站上的这个例子,是的。是的,你可以。这是链接


这取决于你想打字多少。您可以使用仅具有一个条件的switch语句,也可以使用处理多个条件的if语句

理论上是肯定的,但它们是用来检查不同的东西的。
if
语句用于响应特定的布尔条件,而
switch
语句用于响应多种不同的可能性。也就是说,您可以轻松地将
switch
语句重写为一系列
if-else
语句,反之亦然。通常情况下,虽然你真的不想这么做。用锤子钉钉子,用螺丝刀拧螺丝。你可以用任何一种工具来固定任何一个装置,但它们都不起作用。

理论上是肯定的,但它们用于检查不同的东西。
if
语句用于响应特定的布尔条件,而
switch
语句用于响应多种不同的可能性。也就是说,您可以轻松地将
switch
语句重写为一系列
if-else
语句,反之亦然。通常情况下,虽然你真的不想这么做。用锤子钉钉子,用螺丝刀拧螺丝。您可以使用任何一种工具来固定任何一个设备,但它们都不能正常工作。

我不会将单个if语句转换为switch语句,但这是可以完成的。您需要为开关指定默认值。如果您使用了许多If…else语句,则可以保证切换

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语句转换为switch语句,但是它是可以完成的。您需要为开关指定默认值。如果您使用了许多If…else语句,则可以保证切换

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
的说法变成一篇关于培根重要性的100页论文。:)只需点击
delete
键并开始键入。困惑的是,你的意思是这两个语句可以互换吗?如果你愿意,你可以将
if
语句转换成一篇关于培根重要性的100页论文。:)只需点击
delete
键并开始键入即可。5美元表示此答案将被接受。。。(看看Tony的所有问题;所有被接受的答案都是我的:|)5美元表示这个答案会被接受。。。(看看托尼的所有问题;所有被接受的答案都是我的:|)