簡體   English   中英

通過if語句中斷while循環

[英]Break while loop through if statement

public String pinLoacation(String city, String add2, String add3, String district, String state, String country,
            String pin) {
        Session session = getSession();

        city = "kallahi";
        add2 = "asi5a";
        add3 = "parvathiffgpuragm road";
        district = "kozfhikode";
        state = "kerafla";
        country = "india";
        pin = "673003";

        List<String> ar = new ArrayList<String>();

        ar.add(pin);
        ar.add(country);
        ar.add(state);
        ar.add(district);
        ar.add(city);
        ar.add(add3);
        ar.add(add2);

        Criteria criteria = session.createCriteria(RegionProfile.class);

        Disjunction disjunction = Restrictions.disjunction();

        int i = 0;
        while (i < ar.size()) {

            check: if (disjunction.add(Restrictions.eq("regionProfileName", ar.get(i)).ignoreCase()).equals(ar.get(i)))

                break check;
            else i++;


        }

        criteria.add(disjunction);

        ProjectionList proj = Projections.projectionList();
        proj.add(Projections.groupProperty("regionProfileId").as("regionProfileId"));
        criteria.setProjection(proj);
        criteria.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
        List<RegionProfile> res = criteria.list();

        return BasicGson.toGson(res);

    }
}

我有上面的代碼,我想用它從列表中返回特定列表項的ID,但是它在while循環完成后返回整個結果。但是我想要if語句的第一個真條件的結果

regionprofile列值

"World"
"Asia"
"India"
"Kerala"
"Kozhikode"
"673003"

所以實際上我想返回第一個相等列表項的ID,但現在返回2個ID,即印度別針的 ID

您的代碼中有幾個錯誤。 首先,當覆蓋方法開頭的所有值時,為什么在方法中有參數。 沒有任何意義。

然后,您的while循環非常奇怪。 在此循環中,將if條件命名為"check" ,在if ,將不執行任何操作而破壞"check" 您不增加i ,因此下一次while循環時,您的i仍然相同。 您想打破while循環嗎? 然后,您只需要break;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM