请不要介意代码的逻辑;我只是想帮助理解错误,这似乎发生在最后的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");
}
}
答案 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])