If statement given和else if属于哪个if?

If statement given和else if属于哪个if?,if-statement,If Statement,假设x=1,y=-1,z=1 if (x > 0) if (y > 0) System.out.println("x > 0 and y > 0"); else if ( y< 0) System.out.println("x < 0 and z > 0"); if(x>0) 如果(y>0) 系统输出println(“x>0,y>0”); else if(y0){ 如果(y>0){ 系统输

假设x=1,y=-1,z=1

 if (x > 0)
       if (y > 0)
          System.out.println("x > 0 and y > 0");
    else if ( y< 0)
          System.out.println("x < 0 and z > 0");
if(x>0)
如果(y>0)
系统输出println(“x>0,y>0”);
else if(y<0)
系统输出println(“x<0且z>0”);
此代码打印x<0和z>0;
这是怎么可能的?给定的if和else if属于哪个if?

你的缩进让你感到不舒服,因为你没有为这些单行if语句使用括号。如果重新添加括号,您将清楚地看到If语句是如何形成的:

if (x > 0){
     if (y > 0){
         System.out.println("x > 0 and y > 0");
     }else if ( y< 0){
         System.out.println("x < 0 and z > 0");
    }
}
if(x>0){
如果(y>0){
系统输出println(“x>0,y>0”);
}else if(y<0){
系统输出println(“x<0且z>0”);
}
}

要使代码正常运行,不一定需要括号,但最好使用括号和惯例。这使您的代码更易于阅读和理解


@d_ominic已经提供了干净的代码

您得到了正确的输出!!!不要像python代码那样用缩进来确定级别。指定语言可能是个好主意。我怀疑您使用的语言是Java,其中空格不重要。。。但是很难说。它属于第二个if(y>0)如果您希望它属于第一个if,那么需要关闭第二个if。不懂语言虽然很难说