0 java
我的任务是制作一个程序,允许用户输入他们的出生日期,它将输出他们的中国十二生肖动物和他们的星座.该程序认为月份是未声明的变量,但我试图使它们成为变量"月"的值.
这是代码,
int day, year;
String month;
System.out.println("Enter the month you were born.");
month=in.nextLine();
System.out.println("Enter day you were born.");
day=in.nextInt();
System.out.println("Enter the year you were born.");
year=in.nextInt();
if (month==January && day <=20)
System.out.println("You are a Capricorn.");
if (month==January && day > 20)
System.out.println ("You are an Aquarius.");
if (month==February && day <= 19)
System.out.println ("You are an Aquarius.");
if (month==February && day >19)
System.out.println ("You are a Pisces.");
if (month==March && day <= 20)
System.out.println ("You are a Pisces.");
if (month==March && day > 20)
System.out.println ("You are an Aries.");
if (month==April && day <= 20)
System.out.println ("You are an Aries.");
if (month==April && day >20)
System.out.println ("You are a Taurus.");
if (month==May && day <= 21)
System.out.println ("You are a Taurus.");
if (month==May && day > 21)
System.out.println ("You are a Gemini.");
if (month==June && day <= 21)
System.out.println ("You are a Gemini.");
if (month==June && day >21)
System.out.println ("You are a Cancer.");
if (month==July && day <=22)
System.out.println ("You are a Cancer.");
if (month==July && day >22)
System.out.println ("You are a Leo.");
if (month==August && day <=22)
System.out.println ("You are a Leo.");
if (month==August && day >22)
System.out.println ("You are a Virgo.");
if (month==September && day <=23)
System.out.println ("You are a Virgo.");
if (month==September && day >23)
System.out.println ("You are a Libra.");
if (month==October && day <=23)
System.out.println ("You are a Libra.");
if (month==October && day >23)
System.out.println ("You are a Scorpio.");
if (month==November && day <=22)
System.out.println ("You are a Scorpio.");
if (month==November && day >22)
System.out.println ("You are a Sagittarius.");
if (month==December && day <=21)
System.out.println ("You are a Sagittarius.");
else
System.out.println ("You are a Capricorn.");
Run Code Online (Sandbox Code Playgroud)
你需要在它们周围加上双引号来表明你的月份字符串:
if (month.equals("January") && day <=20)
System.out.println("You are a Capricorn.");
Run Code Online (Sandbox Code Playgroud)
意识到用户将要完全放入"1月",所以"1月"将无法正常工作.为此,请确保使用该toLower功能.你也可以使用它equalsIgnoreCase().
每个月都遵循相同的模式.任何时候你使用字符串文字,它需要在" ".此外,如果您要比较字符串,则需要使用equals()如上所示.
正如Luiggi在下面的评论中指出的那样,更有意义:
if ("January".equals(month) && day <=20)
Run Code Online (Sandbox Code Playgroud)
这将避免NullPointerException可能出现的错误.