改正如下:
import java.io.*;
public class InputMonth {
public static String readline() {  
String s="";
int inInt=0;     
        try {
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
             s = in.readLine();
             inInt = Integer.parseInt(s);
             //in.close;
             //System.out.println(s); 

}

catch (NumberFormatException ex) {
System.out.println("输入的数字格式不正确!");
        }
catch (Exception e) {
            System.out.println(e);

        }
return s;
    }
    public static void main (String [] args) {
     String yue="";
int x=0;
     boolean done=false;
     while(!done) {
     System.out.print("请输入一个正确的月份: ");
     yue = readline();
x=Integer.parseInt(yue);
     if(x>12) {
     System.out.print("您输入了一个错误的月份,请重新输入: ");
     continue;
     }else{
     switch(x) {
     case 1:
     case 3:
     case 5:
     case 7:
     case 8:
     case 10:
     case 12:
     System.out.println("第 " + x + "月份共有31 天! ");
     done=true;
break;
     default:
     System.out.println("第 " + x + "月份共有30 天! ");
     done=true;
     }
     }
     }
    }
}

解决方案 »

  1.   

    1.readlin返回值类型不对
    2。异常捕捉应该从特殊到全部
    3。返回值未赋初值
    4。case语句没有break
      

  2.   

    import java.io.*;
    public class InputMonth {
    public static int readline() {  
    String s="";
    int inInt=0;     
            try {
                BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
                 s = in.readLine();
                 inInt = Integer.parseInt(s);
                 //in.close;
                 //System.out.println(s);
            } catch (IOException e) {
              System.out.println(e);
            }catch (NumberFormatException ex) {
    System.out.println("输入的数字格式不正确!");
    }
            return inInt;
        }
        public static void main (String [] args) {
         int x;
         boolean done=false;
         while(!done) {
         System.out.print("请输入一个正确的月份: ");
         x = readline();
         if(x>12) {
         System.out.print("您输入了一个错误的月份,请重新输入: ");
         continue;
         }else{
         switch(x) {
         case 1:
         case 3:
         case 5:
         case 7:
         case 8:
         case 10:
         case 12:
         System.out.println("第 " + x + "月份共?有31 天! ");
         done=true;
         break;
         default:
         System.out.println("第 " + x + "月份共有30 天! ");
         done=true;
         }
         }
         }
        }
    }
      

  3.   

    public static String readline() { 
    int inInt;   
    return inInt;
        }这里类型明显不匹配。 readline()返回为String 型,你却返回的是int。
      

  4.   

    这里定义:int x;
    这里返回的确是String型,也不匹配。
    x = readline();
      

  5.   

    public static String readline() { 
    int inInt;   
    return inInt;
        }这里类型明显不匹配。 readline()返回为String 型,你却返回的是int。
      

  6.   

    非常感谢loveyousomuch(★阿佛洛狄忒★) 和cfan246(赚钱娶老婆)的提示,但是程序中对于异常的输入没有进行处理,我又给修改了一下,请两位给看看,谢谢!程序如下:
    import java.io.*;
    public class InputMonth3 {
    public static int readline() {  
    String s="";
    int inInt=0;
    boolean done=false;
    outerLoop:
    while(!done) {
    int crc=0;
            try {
                BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
                 s = in.readLine();
                 inInt = Integer.parseInt(s);
                 //in.close;
                 //System.out.println(s);
            } catch (IOException e) {
               System.out.println(e);
               crc=crc+1;
            }catch (NumberFormatException ex) {
    System.out.println("您输入的数字格式不正确!" + ex);
    crc=crc+1;
    }
    if(crc != 0) {
    System.out.println("请您重新输入一个正确的月份: ");
    continue;
    }else {
    //return inInt;
    break outerLoop;
    }
    }
            return inInt;
        }
        public static void main (String [] args) {
         int x;
         boolean done=false;
         while(!done) {
         System.out.print("请输入一个正确的月份: ");
         x = readline();
         if(x>12) {
         System.out.print("您输入了一个错误的月份,请重新输入: ");
         continue;
         }else{
         switch(x) {
         case 1:
         case 3:
         case 5:
         case 7:
         case 8:
         case 10:
         case 12:
         System.out.println("第 " + x + "月份共?有31 天! ");
         done=true;
         break;
         default:
         System.out.println("第 " + x + "月份共有30 天! ");
         done=true;
         }
         }
         }
        }
    }