有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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) 个答案

  1. # 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将包含对分配给它的最后一个字符串的引用,而之前的所有字符串都将被忽略

    在循环内将字符串解析为int,然后对其进行处理(将其添加到某个集合中,处理它,等等),这样做更有意义:

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

    您需要在循环之外声明它

    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在循环中

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

  3. # 4 楼答案

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

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

    变量f是其所在块的局部变量。 你需要在街区外申报

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

    要将其转换为整数,只需使用integer。parseInt(f)

  5. # 6 楼答案

    要访问循环外的值,需要定义循环外的值。 像

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

    但是请注意,您从这个循环中收到了最新的字符串值(因为在所有迭代中,您都将替换这个变量)