arraylist有问题,if语句会做什么?

时间:2019-12-06 15:34:21

标签: java

有人可以向我解释此代码。 在这里,我被设置为1,随后在代码中会被引用

        int i = 1;       
        List data = new ArrayList<>();
        String column1 = new String();
        String column2 = new String();
        String column3 = new String();
        String column4 = new String();
        String column5 = new String();
        String column6 = new String();
        String column7 = new String();
        String column8 = new String();
        String column9 = new String();
        String column10 = new String();
        String column11 = new String();
        String column12 = new String();

在此if语句中,如果i等于1,则执行i ++。 这会一直持续到所有行都被掩盖还是我错过了什么吗? 什么时候去else语句? Rad在瑞典语中排行。

            BufferedReader reader = Files.newBufferedReader(Paths.get("winequality-white.csv"), StandardCharsets.ISO_8859_1);
            String rad;
            while ((rad = reader.readLine()) != null) {
                if (i == 1) {
                    i++;
                } else {
                    String[] radArray = rad.split(";");
                    column1 += radArray[0] += ",";
                    column2 += radArray[1] += ",";
                    column3 += radArray[2] += ",";
                    column4 += radArray[3] += ",";
                    column5 += radArray[4] += ",";
                    column6 += radArray[5] += ",";
                    column7 += radArray[6] += ",";
                    column8 += radArray[7] += ",";
                    column9 += radArray[8] += ",";
                    column10 += radArray[9] += ",";
                    column11 += radArray[10] += ",";
                    column12 += radArray[11] += ",";

                    //System.out.println(data.toString());
                }

            }
            data.add(column1 += ";");
            data.add(column2 += ";");
            data.add(column3 += ";");
            data.add(column4 += ";");
            data.add(column5 += ";");
            data.add(column6 += ";");
            data.add(column7 += ";");
            data.add(column8 += ";");
            data.add(column9 += ";");
            data.add(column10 += ";");
            data.add(column11 += ";");
            data.add(column12 += ";");

            reader.close();
            return data;

        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

1 个答案:

答案 0 :(得分:4)

if跳过处理文件的第一行,可能是因为它包含标题。 i最初是1,因此在第一次循环迭代中,if (i == 1)为true,并且i++;确实将i设置为2。因此,在下一个循环迭代(以及所有其他循环)中,i == 1为假,并且采用了else分支来处理该行。