[英]What is the preferred way of writing a loop in Java. Please have a look at the code below
我正在尝试将一个节点( newNode
)添加到链表的末尾,为此,我正在尝试遍历到链表的末尾。
我首选的方法是创建对列表head
的引用,然后解析直到我们到达最后一个元素。 为此,我通常使用 while 循环。
Node ptr = head;
while (ptr.next != null) {
ptr = ptr.next;
}
ptr.next = newNode
我遇到了这个实现相同的for循环
Node p, q;
for (p = head; (q = p.next) != null; p = q);
p.next = newNode;
我习惯了 Python 和“pythonic”的编码方式。 因此,我想知道 Java 是否有更优选的方式? 经验丰富的 Java 开发人员会首选上述两种方法中的哪一种?
尽管这是一个主观问题,但每个人(或大多数人)都会同意第二个选项不可读。 我错过了注意;
在最后。
使您的代码可读且易于理解。 不要让它看起来很聪明。
注意:这并不意味着您不应该使用for循环。 使for循环等同于while循环。
for (Node ptr = head; ptr.next != null;) {
ptr = ptr.next;
}
或者,至少在您的for循环代码中添加一个空主体{}
。
for (p = head; (q = p.next) != null; p = q) {
}
我已经看到 static 代码分析器规则设置为在循环有空体时编译/构建失败(如上明确或在您的问题中使用;
最后)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.