有 Java 编程相关的问题?

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

带有内部赋值的java While循环导致checkstyle错误

我正在检查我的代码,以确保它符合CheckStyle标准

我个人认为“无内部赋值”规则使代码更难理解(您必须查看3处而不是1处)

是否有某种方法可以通过在while循环中创建{}块来执行赋值并返回布尔值来保留我的单个区域

你的意见是什么

File file = new File("C:\\test.txt");
FileInputStream fileInputStream = new FileInputStream(new FileInputStream(file));

// Inner Assignment
while ((int i = fileInputStream.readLine()) != -1)
{
  //
}

// No Inner Assignment
int i = fileInputStream.readLine();
while(i!= -1)
{
  //
  i = in.readLine();
}

当我需要一个while循环来分配一些变量的组合时,我会遇到类似的问题,例如使用++操作符

这个for循环会被认为是更好的选择吗(它确实符合checkstyle)

for (int i = fileInputStream.readLine(); i != -1; i = fileInputStream.readLine())
{
  //
}

共 (1) 个答案

  1. # 1 楼答案

    你可以将你的循环重写为一个无限循环,中间有一个^ {CD1>},像这样:

    while(true) {
        int i = fileInputStream.readLine();
        if (i == -1) break;
    }
    

    请注意i可以在循环内部移动:退出循环时它可以拥有的唯一值是-1,因此没有理由让变量在循环外部可见