![](/img/trans.png)
[英]How to restrict if condition to only one time execution of an sql query in 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.