初学Java两个星期,写了一个关于数组操作和循环的程序,在运行时出现下面的错误,不知道改怎么改,麻烦各位看看:
MyArray.java:20: 不是语句
                  Month[]={"一月","二月","三月","四月","五月","六月","七月","八
月","九月","十月","十一月","十二月"};
                       ^
MyArray.java:20: 需要 ';'
                  Month[]={"一月","二月","三月","四月","五月","六月","七月","八
月","九月","十月","十一月","十二月"};
                         ^
程序如下:
import java.io.*;
public class MyArray

 public static void main(String args[]) throws IOException
 {
    BufferedReader input=new BufferedReader
    (new InputStreamReader(System.in));          //定义一个对象
    int i,a,flag;
    String inputString;                             //定义一个变量用于存储输入
    System.out.print("请数组初始化选择");
    System.out.println("请输入功能选择:");
    System.out.println("1.基本初始化数组      2.循环初始化数组");
    inputString=input.readLine();                   
    i=Integer.parseInt(intputString);               //得到用户输入
    String Month[]=new String [12];
    
    switch(i)                                       //依据用户选择进行初始化
    {
     case 1:     
       Month[]={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
       System.out.println("基本初始化成功!");
       break;
       
     case 2:
       for(a=0;a<12;a++)
       Month[a]=a+"月";
       System.out.println("循环初始化成功!");
       break;
    }
    i=0;
    inputString="";
    
    System.out.println("请数组显示方式:");
    System.out.println("1.for循环初始化数组");
    System.out.println("2.while循环初始化数组");
    System.out.println("3.do/while循环初始化数组");
    inputString=input.readLine();                   
    i=Integer.parseInt(intputString);
    
    switch(i)
    {
     case 1:
     for(a=0;a<12;a++)
     {
       System.out.print(Month[a]);
       flag++;
       if (flag/4==0)
       System.out.println(' ');
      }
     break;
    
     case 2:
     a=0;
     while(a<12)
     {
     System.out.print(Month[a]);
       flag++;
       if (flag/4==0)
       System.out.println(' ');
     }
     break;
    
     case 3:
       a=0;
       do
       {
        System.out.print(Month[a]);
        a++;
        flag++;
       if (flag/4==0)
       System.out.println(' ');
     }while(a>12);
    }
    
    i=0;
    inputString="";
    System.out.println("请输入某个数字,Java将告诉你它的含义");
    inputString=input.readLine();                   
    i=Integer.parseInt(intputString);
    for(a=0;a<12;a++)
    {
     if (i==a)
     System.out.println("Java tell me"+i+Month[a]);
     else
     System.out.println("Java tell me"+i+"Oh My God!");
    }    
  }
}
 
    
  
    

解决方案 »

  1.   

    Month[]={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};=>Month = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};另变量名建议小写字母开头
      

  2.   

    改了,可还是不行,现在出现下面这个错误:
    MyArray.java:20: 非法的表达式开始
                      Month={"一月","二月","三月","四月","五月","六月","七月","八月"
    ,"九月","十月","十一月","十二月"};
                            ^
      

  3.   

    import java.io.*;
    public class MyArray

     public static void main(String args[]) throws IOException
     {
        BufferedReader input=new BufferedReader
        (new InputStreamReader(System.in));          //定义一个对象
        int i,a,flag=0; //修改
        String inputString;                             //定义一个变量用于存储输入
        System.out.print("请数组初始化选择");
        System.out.println("请输入功能选择:");
        System.out.println("1.基本初始化数组      2.循环初始化数组");
        inputString=input.readLine();                   
        i=Integer.parseInt(inputString); //修改            //得到用户输入
        String Month[]=new String [12];
        
        switch(i)                                       //依据用户选择进行初始化
        {
         case 1:     
           String month[]={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
           Month = month;    // 修改
           System.out.println("基本初始化成功!");
           break;
           
         case 2:
           for(a=0;a<12;a++)
           Month[a]=a+"月";
           System.out.println("循环初始化成功!");
           break;
        }
        i=0;
        inputString="";
        
        System.out.println("请数组显示方式:");
        System.out.println("1.for循环初始化数组");
        System.out.println("2.while循环初始化数组");
        System.out.println("3.do/while循环初始化数组");
        inputString=input.readLine();                   
        i=Integer.parseInt(inputString); // 修改
        
        switch(i)
        {
         case 1:
         for(a=0;a<12;a++)
         {
           System.out.print(Month[a]);
           flag++;
           if (flag/4==0)
           System.out.println(' ');
          }
         break;
        
         case 2:
         a=0;
         while(a<12)
         {
         System.out.print(Month[a++]); // 修改
           flag++;
           if (flag/4==0)
           System.out.println(' ');
         }
         break;
        
         case 3:
           a=0;
           do
           {
            System.out.print(Month[a]);
            a++;
            flag++;
           if (flag/4==0)
           System.out.println(' ');
         }while(a<12); //修改
        }
        
        i=0;
        inputString="";
        System.out.println("请输入某个数字,Java将告诉你它的含义");
        inputString=input.readLine();                   
        i=Integer.parseInt(inputString); //修改
        for(a=0;a<12;a++)
        {
         if (i==a)
         System.out.println("Java tell me"+i+Month[a]);
         else
         System.out.println("Java tell me"+i+"Oh My God!");
        }    
      }
    }错误的地方都加了修改,编译运行通过,看看吧
      

  4.   

    Month[]={"一月","二月","三月","四月","五月","六月","七月","八
    月","九月","十月","十一月","十二月"};
    改为:
     String[] month={"一月","二月","三月","四月","五月","六月","七月","八
    月","九月","十月","十一月","十二月"};
      

  5.   

    Month[]={"一月","二月","三月","四月","五月","六月","七月","八
    月","九月","十月","十一月","十二月"};
    =========================================================
    如果是初始化,就要写成Strig Month[] = []={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};;
    如果已经定义了要赋值,没别的办法,只能Month[i] = "xxxx";
    没有你的这种写法
      

  6.   

    String[] month={"一月","二月","三月","四月","五月","六月","七月","八
    月","九月","十月","十一月","十二月"};呵呵, 初学确实容易在数组这里出错...
      

  7.   

    你的变量总是写错,前面定义的是inputString 程序中却总是用intputString
    我也是初学者,希望大家多多讨论,一起进步!import java.io.*;
    public class MyArray

     public static void main(String args[]) throws IOException
     {
       BufferedReader input=new BufferedReader
       (new InputStreamReader(System.in));          //定义一个对象
       
       //修改: int i,a,flag;
                int i,a,flag=0;
       String inputString;                             //定义一个变量用于存储输入
        System.out.print("请数组初始化选择");
        System.out.println("请输入功能选择:");
       System.out.println("1.基本初始化数组      2.循环初始化数组");
        inputString=input.readLine();           
        
        // 修改:i=Integer.parseInt(intputString);               //得到用户输入
                 i=Integer.parseInt(inputString);               //得到用户输入    // 修改:String Month[]=new String [12];
                 String Month[]=new String[12];
       
       switch(i)                                       //依据用户选择进行初始化
       {
       case 1: 
      
         // 修改:Month[]={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
                  Month=new String[]{"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
        
         System.out.println("基本初始化成功!");
         break;
         
       case 2:
         for(a=0;a<12;a++)  //修改
          Month[a]=(a+1)+"月";
         System.out.println("循环初始化成功!");
         break;
       }
     
       i=0;
       inputString="";
       
       System.out.println("请数组显示方式:");
       System.out.println("1.for循环初始化数组");
       System.out.println("2.while循环初始化数组");
       System.out.println("3.do/while循环初始化数组");
        
       inputString=input.readLine();                   
       //修改: i=Integer.parseInt(intputString);
          i=Integer.parseInt(inputString);
        
        switch(i)
        {
        case 1:
     /*   for(a=0;a<12;a++)
        {
          System.out.print(Month[a]);
          
          flag++;
          if (flag/4==0)
          System.out.println('\n');
        }
    */
           for(a=0;a<12;a++)
        {
           if(a%4==0){
    System.out.println('\n');
           }
           System.out.print(Month[a]+"   ");
        }
        break;
       
       /*
    case 2:
        a=0;
        while(a<12)
        {
        System.out.print(Month[a]);
          flag++;
          if (flag/4==0)
          System.out.println(' ');
        }
        break;   */
       
       case 2:
       a=0;
       while(a<12)
       {
         System.out.print(Month[a++]);
         flag++;
         if (flag%4==0)
         System.out.println(' ');
       }
       break;
       
    /*     case 3:
           a=0;
           do
           {
               System.out.print(Month[a]);
           a++;
           flag++;
         if (flag/4==0)
         System.out.println(' ');
       }while(a>12);
    */
        case 3:
           a=0;
           do
           {
               System.out.print(Month[a]);
               a++;
               flag++;
               if (flag%4==0)
               System.out.println(' ');
           }while(a<12); 

        }
        
        i=0;
        inputString="";
        System.out.println('\n');
        System.out.println("请输入某个数字,Java将告诉你它的含义");
        inputString=input.readLine(); 
                      
        // 修改:i=Integer.parseInt(intputString);
                 i=Integer.parseInt(inputString);    /*for(a=0;a<12;a++)
        {
        if (i==a)
        System.out.println("Java tell me"+i+Month[a]);
        else
        System.out.println("Java tell me"+i+"Oh My God!");
        }*/
        
        if(i>0 && i<=12)
      System.out.println(Month[i-1]); 
        else 
            System.out.println("Java tell me "+i+" Oh My God!");
      }
    }