If statement 我的else无法识别正确的if

If statement 我的else无法识别正确的if,if-statement,nested-if,If Statement,Nested If,我标记的else有一个错误,表示它是不必要的。我怎样才能让其他人与第一个if保持一致 if (heading < 270 && heading > 90) directionToFace= 'S'; if (heading > 180) { degreeToWalk = (heading-180); directionToWalk = 'W'; }

我标记的else有一个错误,表示它是不必要的。我怎样才能让其他人与第一个if保持一致

if (heading < 270 && heading > 90)
        directionToFace= 'S'; 
        if (heading > 180)
        {
            degreeToWalk = (heading-180);
            directionToWalk = 'W';
        }
        else
        {
            degreeToWalk = (180-heading);
            directionToWalk = 'E';
        }
    else//this is where the error occurs
        directionToFace='N';
    {
        if (heading > 270)
        {
            degreeToWalk =(heading-270);
            directionToWalk='W';
        }
        else 
        {
            degreeToWalk = (heading);
            directionToWalk = 'E';
        }
    }
if(航向<270&&heading>90)
方向面='S';
如果(航向>180)
{
行走度=(品目180);
directionToWalk='W';
}
其他的
{
度行走=(180航向);
directionToWalk='E';
}
else//这就是错误发生的地方
面向面class='N';
{
如果(航向>270)
{
行走度=(品目270);
方向towalk='W';
}
其他的
{
degreeToWalk=(标题);
directionToWalk='E';
}
}
只有stmt1依赖于cond

if(cond){
      stmt1
      stmt2
}

您需要在它们周围添加括号,使其依赖于cond。如果第一行缺少
{

,那么您不能将多个语句放在一个If块中,它需要包装在一个块中(使用{})。在您的情况下,“If”只处理第一行:

directionToFace= 'S'; 
在第一个if语句中,下一个语句为:

    if (heading > 180)
    {
        degreeToWalk = (heading-180);
        directionToWalk = 'W';
    }
    else
    {
        degreeToWalk = (180-heading);
        directionToWalk = 'E';
    }
因为java不关心空格和制表符,所以它查看下一个要处理的语句,它是一个else。它会感到困惑,因为最后一个语句不是if(没有else),也不是else if

因此,如果我们查看代码,您似乎没有将初始if包装到block语句中:

 if (heading < 270 && heading > 90)
 {
     // all your statements go here
 }
if(航向<270&&heading>90)
{
//你所有的陈述都在这里
}
您有

...
} else
     directionFace = 'N';
{
在几乎所有使用
{}
进行块作用域的语言中,if/else都是

if (condition)
   single_line;


由于else之后没有
{
,因此
方向面
赋值成为
else
子句`的唯一组成部分,它是一个无条件执行的块。

这应该是什么语言?这是一个自包含的可编译示例吗?
...
} else
     directionFace = 'N';
{
if (condition)
   single_line;
if (condition) {
    multiple;
    lines;
}