【问题标题】:if else statement error as it says its not a statementif else 语句错误,因为它说它不是语句
【发布时间】:2017-06-25 20:04:50
【问题描述】:

我是 java 编程的新手,我正在尝试编程,但是,我的 If Else 语句中出现错误。有人可以调查一下并帮助我。

 public Effort getStep(int value) {
        if (value < mGreenStep)
            return Effort.GURU;
        else  (value < mYelloStep)
            return Effort.WALKING;

    }
}

I get an error which says error: ';' expected 

有人可以帮我解决这个 if else 语句。

【问题讨论】:

  • 要么是else 没有条件,要么是else if 有条件。
  • 你的'}'太多了
  • 您也问过同样的问题,但用户名不同:stackoverflow.com/questions/44626042/…。不要那样做。相反,请改进您的原始问题。
  • 您可能希望将else 替换为else if,并为大于绿色和黄色值的值添加最后一个else。
  • Marvin 能否请您为我重写代码,以便我以后能够发现我的错误是什么。

标签: java


【解决方案1】:

要么只是else 没有条件,要么else if 有条件,请参阅"The if-then and if-then-else Statements"。

无条件:

public Effort getStep(int value) {
    if (value < mGreenStep)
        return Effort.GURU;
    else
        return Effort.WALKING;
}

有条件:

public Effort getStep(int value) {
    if (value < mGreenStep)
        return Effort.GURU;
    else if (value < mYelloStep)
        return Effort.WALKING;
    // missing default
}

请注意,第二个版本也不会编译,因为您已声明返回Effort,但没有分支涵盖value &lt; mGreenStep 和value &lt; mYelloStep 都不是true 的情况,因此您需要额外的else 也是如此。

附带说明:尽管使用不带括号的 if/else 语句 ({}) 是有效的,但强烈建议始终包含它们:

public Effort getStep(int value) {
    if (value < mGreenStep) {
        return Effort.GURU;
    } else {
        return Effort.WALKING;
    }
}

(我忽略了您代码中额外的},因为这可能只是来自复制和粘贴)

【讨论】:

    【解决方案2】:

    在 if-else 块中,else 语句没有条件。如果要添加条件,请将其更改为 if-else if 语句。

    else if (value < mYelloStep)
        return effort.WALKING;
    else
        return null;
    

    【讨论】:

      【解决方案3】:

      你在 else 之后有一个条件。

      试试else if

      https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html

      【讨论】:

        【解决方案4】:

        请使用 else if (condn)。在java中,如果你使用单一的else,那么这意味着上述条件都没有得到满足,但除非你使用else-if,否则else永远不会跟随条件。

        即。

        ..
        else if (value < mYellowStep)
        return effort.WALKING;
        }
        
        simply use
        ..
        else
         return effort.WALKING
        }
        

        【讨论】:

        • 链接怎么样?短代码?具体指出他的代码哪里错了?这类东西更适合cmets。
        【解决方案5】:

        您的 if-else 语法错误,else 后面应该有一个 if。这是 if-else 语句的正确语法

        int testscore = 76;
        char grade;
        
        if (testscore >= 90) {
            grade = 'A';
        } else if (testscore >= 80) {
            grade = 'B';
        } else if (testscore >= 70) {
            grade = 'C';
        } else if (testscore >= 60) {
            grade = 'D';
        } else {
            grade = 'F';
        }
        

        在您的代码中,正确的语法应该是

        public Effort getStep(int value) {
            if (value < mGreenStep)
                return Effort.GURU;
            else if (value < mYelloStep)
                return Effort.WALKING;
            return null;
        }
        

        【讨论】:

        • 而不是return null,OP 可能想要throw new AssertionError("value should be &lt; " + mYelloStep + " but received " + value); 或类似的东西(可能是IllegalArgumentException)。
        猜你喜欢
        • 1970-01-01
        • 2019-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-21
        • 2023-01-29
        • 2018-08-30
        • 1970-01-01
        相关资源
        最近更新 更多