【问题标题】:Why am I getting "Error: 'else' without 'if'"? [duplicate]为什么我得到“错误:没有'if'的'else'”? [复制]
【发布时间】:2014-01-12 05:12:48
【问题描述】:

我无法在此处找到错误:

import java.util.Scanner;

public class StringExample {
  public static void main(String[] args) {
    Scanner myScanner = new Scanner(System.in);

    System.out.println("What's your favorite type of food?");
    System.out.println("1. Pizza?");
    System.out.println("2. Steak?");
    System.out.println("3. Cake?");

    String answer = myScanner.next();
    if (answer.equals ("Pizza")) {
      System.out.println("It's pretty nice, isn't it?");
    }else if (answer.equals ("Steak")); {
      System.out.println("Yummy :)");
    }else if (answer.equals ("Cake")); {
      System.out.println("THE CAKE IS A LIE!");
    }
    }
  }

错误:没有“if”的“else”

我在第 17 行收到此错误:

}else if (answer.equals ("Cake")); {

【问题讨论】:

  • 分号有意义。
  • 这似乎是伟大的复制粘贴技术的副作用:大声笑你有很多分号
  • 你真的没有接受答案吗?

标签: java if-statement


【解决方案1】:

删除这些行之后的;

}else if (answer.equals ("Steak"))
...
}else if (answer.equals ("Cake"))

输入; 将表明else if 正文为空。

来自site

分号告诉'if语句'在放置时什么都不做 直接在它之后。换句话说:如果陈述为真,请执行:';' (无)

【讨论】:

    【解决方案2】:

    去掉这两条语句后的分号

    else if (answer.equals ("Steak"));
    else if (answer.equals ("Cake"));
    

    【讨论】:

      【解决方案3】:
      public class StringExample {
        public static void main(String[] args) {
          Scanner myScanner = new Scanner(System.in);
      
          System.out.println("What's your favorite type of food?");
          System.out.println("1. Pizza?");
          System.out.println("2. Steak?");
          System.out.println("3. Cake?");
      
          String answer = myScanner.next();
          if (answer.equals ("Pizza")) {
            System.out.println("It's pretty nice, isn't it?");
          }else if (answer.equals ("Steak")) {
            System.out.println("Yummy :)")
          }else if (answer.equals ("Cake")) {
            System.out.println("THE CAKE IS A LIE!");
          }
          }
        }
      

      你不应该在 if 或 else if 条件之后使用分号。

      【讨论】:

        【解决方案4】:

        删除所有不需要的;

        if (answer.equals ("Pizza")) {
          System.out.println("It's pretty nice, isn't it?");
        }else if (answer.equals ("Steak")) {
          System.out.println("Yummy :)")
        }else if (answer.equals ("Cake")) {
          System.out.println("THE CAKE IS A LIE!")
        }
        

        【讨论】:

          【解决方案5】:

          可能有两件事:

          1你的意思不是分号

          2您“不小心”删除了与最后一个 else 相关的 if

          【讨论】:

            【解决方案6】:

            错误原因:
            它是因为';'您已包含的符号。将符号想象为终止字符。因此,即使在输入 else if 块之前,它也会被终止。它让 else if 块为空,这就是编译器搜索 else 语句的原因

            正道:

            if (answer.equals ("Pizza")) {
              System.out.println("It's pretty nice, isn't it?");
            }else if (answer.equals ("Steak")) {
              System.out.println("Yummy :)")
            }else if (answer.equals ("Cake")) {
              System.out.println("THE CAKE IS A LIE!")
            }
            

            这对你有帮助

            【讨论】:

              【解决方案7】:

              检查这一行你有一个分号(;)那里。

              }else if (answer.equals ("Steak")); {
              
              and 
              
              }else if (answer.equals ("Cake")); {
              

              使用

              }else if (answer.equals ("Steak")) {
              
              }else if (answer.equals ("Cake")) {
              

              【讨论】:

                【解决方案8】:

                你放了一些不必要的;在 else if 语句后标记,删除它。

                if-else if 语句如下所示

                if ( condition )
                { result }
                else if( condition )
                { result }
                else if( condition )
                { result }
                else { result }
                

                【讨论】:

                  猜你喜欢
                  • 2014-04-10
                  • 1970-01-01
                  • 1970-01-01
                  • 2019-03-18
                  • 1970-01-01
                  • 1970-01-01
                  • 2021-10-15
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多