你可以在一个while循环中停止检查一次它是否已经过了一次?

时间:2015-06-05 18:20:18

标签: java loops

在满足条件后,我不需要if。有什么方法可以修改我的代码,以便它在通过后不必检查它吗?  我的数据库中有很多表,我想知道代码是否是最佳的。

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM STACKOVERFLOW.information_schema.tables ORDER BY TABLE_NAME");
while (rs.next()) {
    String name = rs.getString("TABLE_NAME");
    ExtractFrom.addItem(name);         
    if (name.toLowerCase().equals("stack")) pvIsPresent=true;
}
if (pvIsPresent)
    ExtractFrom.setSelectedItem("stack");

4 个答案:

答案 0 :(得分:5)

你可以if (!pvIsPresent && name.toLowerCase().equals("stack"))

虽然您可能还想使用效率稍高的name.equalsIgnoreCase("stack")

答案 1 :(得分:1)

这有些丑陋但是......

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM STACKOVERFLOW.information_schema.tables ORDER BY TABLE_NAME");

while (rs.next()) {
    String name = rs.getString("TABLE_NAME");
    ExtractFrom.addItem(name);

    if (name.toLowerCase().equals("stack")) {
        pvIsPresent = true;
        break;
    }
}

while (rs.next()) {
    String name = rs.getString("TABLE_NAME");
    ExtractFrom.addItem(name);
}

if (pvIsPresent)
    ExtractFrom.setSelectedItem("stack");

答案 2 :(得分:0)

您可以将while语句更改为:

while(rs.next && !pvIsPresent)...

答案 3 :(得分:0)

更丑陋,更简单,但是你可以在之前放一个计数器

  • “int counter = 0”

在if语句中你可以问

  • “if(.....&& counter == 0)”

比if语句之后你可以将计数器增加为

  • “计数器++”

因为计数器永远不会再次变为0,所以if语句永远不会被再次检查。

我希望它也有帮助。