YoungUser YoungUser - 3 months ago 9
Java Question

Using throws java.io.IOException and getting System.in.read(); to access a case via an integer

I only need help with the input part. If the user inputs a number I need the program to read and output a case that equals the number that was input.

//This program will display the months of the year

public class MonthsOfTheYear {
public static void main(String[] args)
throws java.io.IOException{

int month;

System.out.println("Please enter a Month Number: ");

month = (int) System.in.read(); //Get an integer

switch (month) {
case 1: System.out.println("January");
break;
case 2: System.out.println("February");
break;
case 3: System.out.println("March");
break;
case 4: System.out.println("April");
break;
case 5: System.out.println("May");
break;
case 6: System.out.println("June");
break;
case 7: System.out.println("July");
break;
case 8: System.out.println("August");
break;
case 9: System.out.println("September");
break;
case 10: System.out.println("October");
break;
case 11: System.out.println("November");
break;
case 12: System.out.println("December");
break;
default: System.out.println("Invalid Month");
break;
}
System.out.println();
}
}

Answer

You can use Scanner to read your System.in

Scanner input = new Scanner(System.in);
month = input.nextInt();

Output:

Please enter a Month Number: 
1
January

See related

Edit:

as noahz pointed out there is a Console class that covers the same functionality. For an idea of the difference between the two, read this.