For循环和If语句混淆

时间:2015-11-07 21:55:57

标签: android if-statement for-loop

好吧所以这不是我在Java中的第一次循环,我已经编写了一年多了但是由于某些原因我似乎无法在这里得到这个想法,有一个包含类别的抽屉,每个类别可以/不能有描述,如果用户尝试添加存在的类别,程序首先检查描述是否相同,如果是,则提示用户更改描述或类别,下面是我的代码,第一次运行它,它第二次正常工作,它提示用户用户,但也添加类别而不是返回,任何帮助将受到高度赞赏。 `

 private void addCategory(String category, String description)
   {
    if(drawer.getItems().isEmpty()) {
        addDrawerItem(category, description);


    }else {
        for (int i = 0; i < drawer.getItems().size(); i++) {

            if (category.toUpperCase().equals(drawer.getItem(i).getTextPrimary())
                    && description.equals(drawer.getItem(i).getTextSecondary())) {
                Toast.makeText(getBaseContext(), "Category with same description exists", Toast.LENGTH_SHORT).show();

            }else {

                    addDrawerItem(category, description);
                    return;


            }

        }

    }
}`

1 个答案:

答案 0 :(得分:0)

这应该更好:

private void addCategory(String category, String description) { 
    if (drawer.getItems().isEmpty()) { 
        addDrawerItem(category, description);
    } else {
        for (int i = 0; i < drawer.getItems().size()); i++) {
            if (category.toUpperCase().equals(drawer.getItem(i).getTextPrimary().toUpperCase())
                    && description.equals(drawer.getItem(i).getTextSecondary())) {
                Toast.makeText(getBaseContext(), "Category with same description exists", Toast.LENGTH_SHORT).show();
                return;
            }
        }

        addDrawerItem(category, description);
    } 
}

循环仅用于查找匹配的条目。只有在找不到匹配项时才会添加新条目。我还添加了一个toUpperCase()调用,以确保类别测试能够按照您的意图运行。