私は Java の完全な初心者であり、読んだ資料のいくつかを確認するために簡単なテスト プログラムを作成しています。次のコード ブロックは正しく動作しません。ユーザーから年、月、日を受け取り、年、月、日で初期化された GregorianCalendar オブジェクトを作成することになっています。ただし、GregorianCalendar 変数の月を返そうとすると、月の変数を初期化した月が常に返されます。理由はわかりません。
import java.util.*;
public class Prac {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Enter Year: ");
int YEAR = input.nextInt();
System.out.print("Enter Month: ");
String MONTH_STRING = input.next();
System.out.print("Enter Date: ");
int DATE = input.nextInt();
int MONTH = 10;
String mon = MONTH_STRING.toLowerCase();
if (mon == "january") {
MONTH = 0;
} else if (mon == "february") {
MONTH = 1;
} else if (mon == "march") {
MONTH = 2;
} else if (mon == "april") {
MONTH =3;
} else if (mon == "may"){
MONTH =4;
} else if (mon == "june"){
MONTH =5;
} else if (mon == "july"){
MONTH =6;
} else if (mon == "august"){
MONTH=7;
} else if (mon == "september"){
MONTH=8;
} else if (mon == "october"){
MONTH=9;
} else if (mon == "november"){
MONTH=10;
} else if (mon == "december"){
MONTH =11;
}
GregorianCalendar entDate = new GregorianCalendar(YEAR,MONTH,DATE);
System.out.println(entDate.get(Calendar.MONTH));
}
}
また、switch ブロックを使用できたことは承知していますが、どういうわけか奇妙なエラーが発生しました。