繁体   English   中英

如何限制条件是否仅在Java中执行一次

[英]How to restrict if condition only one time execution in java

if -condition检查代码中的每个值,但是我只希望执行一次; 够了。

这是我的代码:

Session session = null;
try{
    Query qu = session.createSQLQuery("select plot_no from house_details where type='duplex'");
    List<Long> li =  qu.list();
    System.out.println("---li---"+li.toString());
    for (Iterator itr = li.iterator(); itr.hasNext();) {
        String plotNo = itr.next().toString();

        if(plotNo.equals("501") || plotNo.equals("520") || plotNo.equals("601"){
            System.out.println("---if---");
            //code here
        }
        else{
            System.out.println("---else---");
            Query qu1 = session.createSQLQuery("select distinct name, houseno from house_details");
            List li1 =  qu1.list();
            for (Iterator itr1 = li.iterator(); itr1.hasNext();) {
                Object[] obj = (Object[]) itr1.next();
                String houseName = (String) obj[0];
                String houseNo = (String) obj[1];
                System.out.println("---houseName--->"+houseName);
            }
        }
    }
} catch(Exception e){
    e.printStackTrace();
} finally {
    if(session != null){
        session.close();
    }
}

输出:

---li---[501, 501, 0, 101, 520,601,601, 101, 114]

在我的输出if -condition检查501分两次,520一次,601分两次,所以它完全执行if -condition 五倍 我希望它仅执行一次if

您可以使用布尔变量来检查特定条件。 例如

boolean is501 = false;
boolean is520 = false;
boolean is601 = false;

//You need to define is501 this outside of for loop

if(plotNo.equals("501") || plotNo.equals("520") || plotNo.equals("601"){
   if (!is501 && plotNo.equals("501")) {
     //Your logic
     is501 = true;
   }
   else if (!is520 && plotNo.equals("520")) {
     //Your logic
     is520 = true;
   }
   else if (!is520 && plotNo.equals("601")) {
     //Your logic
     is601 = true;
   }
}

维护flag并在执行if语句时将其设置为false。 并像下面这样。

if(flag)
if(plotNo.equals("501") || plotNo.equals("520") || plotNo.equals("601"){
        flag = false;
        System.out.println("---if---");
        //code here
    }

希望它清除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM