我的代码中有什么错误?尝试将userinput用于变量并使用switch语句

Dev*_*ted 1 java

所以我试图创建这个简单的程序是用户在一个月内进入(1-12)然后使用switch语句告诉他们基于他们输入的内容是什么月份.这是我的代码:

import java.util.Scanner;
class tests{
public static void main(String args[]){
    Scanner monthone = new Scanner(System.in);  
    Double month;
    System.out.println("What is the numerical value of the month? 1-12");
    System.out.print(monthone.nextLine());
    month = monthone.nextDouble();

    switch (month){
    case 1: 
    System.out.println("It's January");
    break;
    case 2: System.out.println("It's Feburary");
    break;
    case 3:
        System.out.println("It's March");
    break;
    case 4:
        System.out.println("It's April");
    break;
    case 5:
        System.out.println("It's May");
    break;
    case 6:
        System.out.println("It's June");
    break;
    case 7:
        System.out.println("It's July");
    break;
    case 8:
        System.out.println("It's August");
    break;
    case 9:
        System.out.println("It's September");
    break;
    case 10:
        System.out.println("It's October");
    break;
    case 11:
        System.out.println("It's November");
    break;
    case 12:
        System.out.println("It's December");
    break;
    default:
    System.out.println("I Don't know what month it is..");
    break;
    }

 }
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供解决方案或帮助吗?我尝试使用Int作为我的变量但是失败了...:s(请详细解答..我在这里学习不会在快速回复中给出答案.)

Jop*_*ops 6

您已将月份定义为Double.

Double month;
Run Code Online (Sandbox Code Playgroud)

但是,您只能打开以下类型:

  • byte(及其包装器,Byte)
  • 短(及其包装,短)
  • char(及其包装器,Character)
  • int(和它的包装器,整数)
  • 枚举类型

因此,

switch (month) {
Run Code Online (Sandbox Code Playgroud)

在语法上是不正确的,将导致编译错误.

其他一些事情是不对的:

在此输入图像描述

这是修改后的代码:

public static void main(String args []){

Scanner monthone = new Scanner(System.in);

int month;
System.out.println("What is the numerical value of the month? 1-12");    
//System.out.print(monthone.nextLine());    
month = monthone.nextInt();

switch (month){
case 1: 
System.out.println("It's January");
break;
case 2: System.out.println("It's Feburary");
break;
Run Code Online (Sandbox Code Playgroud)