import java.io.*;
public class Example0307
{public static void main(String [] args)   throws IOException
{InputStreamReader reader=new InputStreamReader(System.in);
 BufferedReader input =new BufferedReader(reader);
 System.out.print("input the month:");
 String text=input.readLine();
 int n=0;
 if(text.startsWith("Jan")) n=1;System.out.println("n");
 if(text.startsWith("Feb")) n=2;System.out.println("n");
 if(text.startsWith("Mar")) n=3;System.out.println("n");
 if(text.startsWith("Apr")) n=4;System.out.println("n");
 if(text.startsWith("May")) n=5;System.out.println("n");
 if(text.startsWith("Jun")) n=6;System.out.println("n");
 if(text.startsWith("Jul")) n=7;System.out.println("n");
 if(text.startsWith("Agu")) n=8;System.out.println("n");
 if(text.startsWith("Sem")) n=9;System.out.println("n");
}
}运行结果为:
input the month:
Jannary
n
n
n
n
n
n
n
n
n
竟然会把n全打出来..为什么啊..不太明白...它只能满足一个if条件啊..怕怕

解决方案 »

  1.   

    if(text.startsWith("Jan")){ n=1;System.out.println("n"); }
      

  2.   

    if(text.startsWith("Jan")) n=1;System.out.println("n"); 
    执行到n=1时,if判断已经执行完成了
    System.out.println("n");是肯定执行的
    下面也一样所以用if的时候建议就算只执行一条语句也用{}括起来
      

  3.   

    if语句后面不加大括号默认的只有一句是属于if的,若想要执行多条语句需用大括号括起来
      

  4.   

       楼上说的对,if-else是有大括号的 !
      

  5.   

    if(text.startsWith("Jan")) 
    {
    n=1;
    System.out.println(n); 
    }
    n不要引号,是变量
      

  6.   


    String[] prefix = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
    for(int i = 0; i < prefix.length; i++)
    {
        if(text.startWith(prefix)
        {
            System.out.println(i + 1);
            break;
        }
    }
      

  7.   

    上面错了,看这个String[] prefix = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
    for(int i = 0; i < prefix.length; i++)
    {
        if(text.startWith(prefix[i])
        {
            System.out.println(i + 1);
            break;
        }
    }