System.out.println("输入X:");
   int x = input();
System.out.println("输入Y:");
   int y = input();
if(x<10)
if(y>10)
  System.out.println("!!!");
else
  System.out.println("@@@");
  System.out.println("***");

这段代码如果输入X=9,Y=9;显示是@@@
                                ***
为什么输入X=11,Y=11;显示是***
为什么输入X=9,Y=11;显示是!!!
                           ***
为什么输入X=11,Y=9;显示是***

解决方案 »

  1.   

    if语句等同于:
    if(x<10){
       if(y>10)
         System.out.println("!!!");
       else
         System.out.println("@@@");
              }
      System.out.println("***");
      

  2.   

    System.out.println("输入X:");
    int x = input();
    System.out.println("输入Y:");
    int y = input();
    if(x<10)
      if(y>10)
        System.out.println("!!!");
      else
        System.out.println("@@@");
    System.out.println("***");这样的问题,你缩进一下来看。很容易就会看出怎么回事的.  :D
      

  3.   

    郁闷,CSDN缩进不了
    这样:
    System.out.println("输入X:");
    int x = input();
    System.out.println("输入Y:");
    int y = input();
    if(x<10)
    ..if(y>10)
    ....System.out.println("!!!");
    ..else
    ....System.out.println("@@@");
    System.out.println("***");
      

  4.   

    对啊,else 总是和最近的没有匹配else的 if语句相对应..
      

  5.   

    本来就是嘛
    else和最近的那个if搭配
      

  6.   

    else 和最近的那个if搭配。。
    if(x<10) 不能满足的话,后面的if就不执行了。但是最后一个System.out.println("***"); 在if之外,所以每次都会执行,所以每次都会输出"***"
      

  7.   

    你干吗不写{},自打用了checkstyle,这样的代码一律属于编译不通过