【发布时间】:2013-12-22 14:24:43
【问题描述】:
我正在检查我的代码以确保它符合 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())
{
//
}
【问题讨论】:
-
你在问什么?你可以选择不使用 checkstyle;您可以禁用内部分配检查;或者你可以删除你的内部任务。如果您想控制变量的范围,您当然可以创建一个块来定义它们并限制它们的范围,但究竟为什么呢?
-
可以在while({})中做块吗?
-
是的。请参阅下面的解决方案。您也可以使用匿名块。那是
{ a = scanner.nextInt(); if (a != -1) System.out.print(a); }
标签: java while-loop variable-assignment