繁体   English   中英

在 Java 中编写循环的首选方法是什么。 请看下面的代码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM