试图将if-else语句转换为switch语句,但最终出现错误

我一直在尝试将以下if语句转换为switch语句。

/**
 * Return appropriate comment for given score and par for hole.
 * You can assume that score is not less than 4 below par for hole.
 * For example, if score is 4 below par, return "condor!!!!",
 * if score is 3 below par, return "albatross!!!",
 * if score is 2 below par, return "eagle!!", etc.
 * See Assign 2 description for full list of comments.
 * @param score
 * @param parForHole
 * @return appropriate comment for given score and par for hole.
 */
public static String comment(int score, int parForHole) {   
    if ( score == parForHole-4)
        return "condor!!!!";
    if ( score == parForHole-3)
        return "albatross!!!";
    if ( score == parForHole-2)
        return "eagle!!";
    if ( score == parForHole-1)
        return "birdie!";
    if ( score == parForHole)
        return "par";
    if ( score == parForHole+1)
        return "bogey";
    if ( score == parForHole+2)
        return "double bogey";
    if ( score == parForHole+3)
        return "triple bogey";

return "Not valid"; // Replace by a suitable switch stmt.
}

这是我的尝试:

public static String comment(int score, int parForHole) {   

     String monthString;
        switch (score) {
            case parForHole-4:  monthString = "condor!!!!";
                     break;
            case parForHole-3:  monthString = "albatross!!!";
                     break;
            case parForHole-2:  monthString = "eagle!!";
                     break;
            case parForHole-1:  monthString = "birdie!";
                     break;
            case parForHole:  monthString = "par";
                     break;
            case parForHole+1:  monthString = "bogey";
                     break;
            case parForHole+2:  monthString = "double bogey";
                     break;
            case parForHole+3:  monthString = "triple bogey";
                     break;
            default: monthString = "Invalid";
                     break;
        }
        return monthString;

}

当我尝试运行此命令时,eclipse会为“ case表达式必须是常量表达式”的每种case条件提供错误信息。我不确定如何克服这个问题。谁能帮我吗?谢谢。

蜘蛛鲍里斯(Boris)

在一个项目case中的一个switch语句必须是编译时常

public static String comment(int score, int parForHole) {       
        switch (score - parForHole) {
            case -4:  
                     return "condor!!!!";
            case -3:  
                     return "albatross!!!";
            case -2:  
                     return "eagle!!";
            case -1:  
                     return "birdie!";
            case 0:  
                     return "par";
            case 1:  
                     return "bogey";
            case 2:  
                     return "double bogey";
            case 3:  
                     return "triple bogey";
            default: 
                     return "Invalid";
        }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将 if else 转换为 switch 语句

来自分类Dev

如何将这些If else语句转换为Switch语句

来自分类Dev

将if语句转换为switch语句

来自分类Dev

将if ... else语句转换为for循环

来自分类Dev

将Lambda函数转换为if else语句

来自分类Dev

将if ... else语句转换为for循环

来自分类Dev

将验证函数从 if 语句转换为 switch 语句

来自分类Dev

试图将活动转换为片段

来自分类Dev

尝试将if else语句转换为javascript中的三进制

来自分类Dev

尝试将if else语句转换为javascript中的三进制

来自分类Dev

尝试将if else语句转换为javascript中的三进制

来自分类Dev

将PHP if / else语句转换为使用三进制格式

来自分类Dev

将sas if-else语句转换为R

来自分类Dev

PowerShell将if else语句转换为Foreach循环

来自分类Dev

试图将 VB 代码转换为 C# 但发生错误

来自分类Dev

java 错误 - 试图将 jList.getSelectedValue() 转换为 int

来自分类Dev

试图将注册表值转换为字符串但出现错误

来自分类Dev

将MERGE语句转换为UPDATE语句

来自分类Dev

将shell语句转换为OR

来自分类Dev

将IF语句转换为CASE

来自分类Dev

将shell语句转换为OR

来自分类Dev

将语句转换为联接

来自分类Dev

试图将书分成几章的python错误

来自分类Dev

Lambda语句仅出现Roslyn编译器错误:无法将表达式转换为表达式树

来自分类Dev

如何将if else语句改写为switch语句

来自分类Dev

试图将字符串转换为双C#?

来自分类Dev

试图将字符串转换为字符指针?

来自分类Dev

我试图使用 jcodec 将图像转换为视频

来自分类Dev

NEST 试图将枚举转换为字符串