在java中访问while循环中的值?

时间:2015-04-05 09:58:44

标签: java loops while-loop

ResultSet rs2 = statement.executeQuery();
while (rs2.next()) {
    String f = rs2.getString(1);
    System.out.println(f);
   }
int a = Integer.parseInt(f);

我需要在此循环外获取字符串f的值并将其转换为整数。但它说“找不到符号”。如何在while循环中访问f的值?

6 个答案:

答案 0 :(得分:2)

如果在循环之前声明f,则可以从循环外部访问它:

ResultSet rs2 = statement.executeQuery();
String f = null;
while (rs2.next()) {
    f = rs2.getString(1);
    System.out.println(f);
}
int a = Integer.parseInt(f);

然而,这没有多大意义,因为在循环f之后将包含对分配给它的最终字符串的引用,并且将忽略所有先前的字符串。

将String解析为循环中的int然后对它做一些事情(将它添加到某个Collection,处理它等等)会更有意义:

ResultSet rs2 = statement.executeQuery();
while (rs2.next()) {
    String f = rs2.getString(1);
    System.out.println(f);
    int a = Integer.parseInt(f);
}

答案 1 :(得分:1)

只需在循环之前定义它 - 在范围内创建的变量(例如循环)仅在此范围内有效。

String f = null;
ResultSet rs2 = statement.executeQuery();
while (rs2.next()) {
    f = rs2.getString(1);
    System.out.println(f);
   }
int a = Integer.parseInt(f);

答案 2 :(得分:1)

你需要在循环之外声明它。

ResultSet rs2 = statement.executeQuery();
String f = new String();
while (rs2.next()) {
    f = rs2.getString(1);
    System.out.println(f);
   }
int a = Integer.parseInt(f);

基本上问题是“Integer.parseInt(f);”不知道f存在,因为f在循环内部。

因为“int a = Integer.parseInt(f);”在循环之外,它无法访问循环内的内容。

答案 3 :(得分:1)

要访问一个值OUTSIDE循环 - 您需要在循环外定义值。 喜欢

ResultSet rs2 = statement.executeQuery();
String f = null;
while (rs2.next()) {
    f = rs2.getString(1);
    System.out.println(f);
   }
int a = Integer.parseInt(f);

但请注意,您从此循环中收到LATEST字符串值(因为在所有迭代中,您将替换此变量)。

答案 4 :(得分:0)

在循环外设置f。 f当前是循环的本地,因此一旦while循环结束它就超出了范围。在进入while循环之前将其定义为新的String。

http://www.java-made-easy.com/variable-scope.html

答案 5 :(得分:0)

变量f是它所在的块的本地变量。 你需要在块之外声明它。

String f = "";
while (rs2.next()) {
    f = rs2.getString(1);

要将其转换为整数,只需使用Integer.parseInt(f);