赋值的左侧必须是变量Error

时间:2015-10-08 19:44:32

标签: java

请不要介意代码的逻辑;我只是想帮助理解错误,这似乎发生在最后的else语句中。

package day1.samples;
import java.util.Scanner;

public class Horscope {
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String [] Birth={"January","February","March"};
    System.out.println("Please Enter Your BirthMonth");
    Scanner input =new Scanner(System.in);
    String X;
    X=input.nextLine();
    if (X==Birth[0]) {
        System.out.println("Your Horoscope is Gemini");
    } else if(X==Birth[1]) {
        System.out.println("your Horscope is libra");
    } else (X==Birth[2]) {
        System.out.println("Your horscope is Leo");
    }
}

5 个答案:

答案 0 :(得分:3)

您需要删除else条件。只有在有条件的情况下才有。您也可以将其他最后一个更改为else。

X=input.nextLine();
if (X.equals(Birth[0])) {
    System.out.println("Your Horoscope is Gemini");
} else if(X.equals(Birth[1])) {
    System.out.println("your Horscope is libra");
} else {
    System.out.println("Your horscope is Leo");
}


此外,您不能将字符串与==进行比较,您应该使用.equals更多详细信息click此处

EG:

X.equals(Birth[0])

答案 1 :(得分:1)

下面:

} else (X==Birth[2]) {

应该是

} else if (X==Birth[2]) {

==外,不应使用equals方法。我只是在回答的原因。分配的左手边必须是变量错误。

答案 2 :(得分:1)

否则没有状态检查部分。在其他地方删除()

或者

使用另一个else if的梯子,只需在大括号前放置。

除了逻辑之外,使用X.equals("some value")来比较值,而不是==比较引用。

答案 3 :(得分:1)

应该是.equals

  } else if (X.equals(Birth[2])) {

答案 4 :(得分:0)

您无需在if ... else梯形图中指定最后一个条件的条件。您可以使用else if(condition)或只使用else。

使用else(条件),语法错误导致错误。希望这会有所帮助。

此外,您应始终使用equals()方法检查两个字符串是否相等,因为它比较字符串的原始内容。它比较字符串的值是否相等。 因此,在你的情况下它应该是 -     X.equals(出生[2])