if .. else语句中的语法错误?

时间:2014-02-24 22:21:57

标签: java

我在“else”和底部的“c”上遇到此代码的语法错误,我不确定原因。

    public static void menuOptionSix(){
        ArrayList<Customer> list = generateFromFile("Week3ProgrammingDataUpdate.csv");
        Comparator<Customer> comparatorForSortingByEmployerGroupByDrugs = new Comparator<Customer>() {
            public int compare(Customer c1, Customer c2) {
                return c1.getEmployer().compareToIgnoreCase(c2.getEmployer());
            }
        };
        Collections.sort(list, comparatorForSortingByEmployerGroupByDrugs);
        for (Customer c : list){
            if (c.getEmployer().equalsIgnoreCase(c.getEmployer()))
                System.out.println(c.getFavoriteDrugs());
            } else {
                System.out.println(c.getEmployer() + " " + c.getFavoriteDrugs());
            }
    }

4 个答案:

答案 0 :(得分:2)

您在if语句中缺少左括号,因此else之前的右大括号未正确匹配。

//                                                     v---Insert here
if (c.getEmployer().equalsIgnoreCase(c.getEmployer())) {

答案 1 :(得分:0)

如果阻止{

,则忘记打开
                                                      |here
if (c.getEmployer().equalsIgnoreCase(c.getEmployer())){
    System.out.println(c.getFavoriteDrugs());
}

答案 2 :(得分:0)

本声明

if (c.getEmployer().equalsIgnoreCase(c.getEmployer()))

缺少{

而且,正如Brent Robinson所指出的那样,你的for循环错过了结束括号。

答案 3 :(得分:0)

您正在尝试使用if语句的Short形式,但是使用else语句,您应该对if语句使用{,}或使用三元运算符而不是if else。

if (c.getEmployer().equalsIgnoreCase(c.getEmployer())){
            System.out.println(c.getFavoriteDrugs());
         }   //if closed
         else {
            System.out.println(c.getEmployer() + " " + c.getFavoriteDrugs());
        } // else closed

Here在本课题中,您可以了解如何正确使用if语句的简短形式(三元运算符)