1

我只需要输入部分的帮助。如果用户输入一个数字,我需要程序读取并输出一个与输入的数字相等的案例。

//这个程序将显示一年中的月份

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();
    }
}
4

6 回答 6

1
class vehicle
{
   int passengers;
   int fuelcap;
   int mpg;
}

import java.io.*;
class Vehicle_Demo
{

   public static void main (String args[]) throws java.io.IOException
   {
      vehicle obj1 = new vehicle();
      obj1.passengers=12;
      obj1.fuelcap=9;
      obj1.mpg=78;

      System.out.println(obj1.passengers, obj1.fuelcap, obj1.mpg);
   }
}
于 2014-04-15T01:09:53.613 回答
1

尝试使用 Console 类:http: //docs.oracle.com/javase/6/docs/api/java/io/Console.html获取用户输入,然后将字符串转换为数字 Integer.parseInt(String)

另外,请注意下一版本的 Java (8) 将支持case 块中的字符串。

于 2013-04-15T14:52:38.367 回答
0

尝试使用 TextIO 输入函数

这比扫描仪输入好

您需要先编译TextIO.java作为先决条件,以便必须在同一文件夹中找到 TextIO.class。

改用这个输入函数:

月 = TextIO.getChar();

如果您对此方法有任何问题,请告诉我。

谢谢!

于 2013-08-27T07:16:12.740 回答
0

您可以使用Scanner来阅读您的 System.in

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

输出:

Please enter a Month Number: 
1
January

相关

编辑:

正如 noahz 指出的那样,有一个Console涵盖相同功能的类。要了解两者之间的区别,请阅读本文

于 2013-04-15T15:00:27.460 回答
0

这里的问题是 Java 将一个字符转换为一个整数,因此你得到一个 ASCII 值。
例如,当您键入 5 时,您会得到 ASCII 格式的 53。检查它在System.out.println();

我试图解决将月份更改为 char 类型然后将 char 值传递给开关控件中的变量值。但问题是,获取System.in.read();方法只能获取单个字符。最后,您可以在 1 到 9 之间进行选择。

我怀疑解决方案是使用缓冲区读取器。在那之前,我把代码留在这里:

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

        char month;

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

        month = (char) System.in.read(); //Get an integer
        //System.out.println("Actual value of :" + month);

        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();
    }
}
于 2018-09-10T16:33:27.360 回答
0

如果我错了,请纠正我,但我很确定它仍然适用于“system.in.read”。您是 switch case 在要处理的输入周围没有单引号。如果您希望在键入“1”时运行案例一,则您的案例应该是案例“1”,而不是案例 1。

于 2016-08-19T15:12:29.760 回答