gpt4 book ai didi

javascript - JavaScript 中的 while(true) - 它是如何工作的

转载 作者:行者123 更新时间:2023-11-28 17:18:12 24 4
gpt4 key购买 nike

我为二叉搜索树编写了这段代码。在大多数情况下,我了解插入节点时它是如何工作的。我不太明白的是 while(true) 部分。

我习惯在使用 while 循环时比较某种值。

对于这段代码,它是如何工作的?

是因为我设置了当前值,而 while 循环返回并检查是否与传递的值匹配?这就是 while 循环与 true 一起工作的方式吗?

class Node {
constructor(val) {
this.val = val;
this.left = null;
this.right = null;
}
}

class BinarySearchTree {
constructor() {
this.root = null;
}
}

BinarySearchTree.prototype.insert = function(value) {
const newNode = new Node(value);

if (this.root === null) {
this.root = newNode;
}

let current = this.root;

while(true) {
if (value === current.val) return;

if (value < current.val) {
if (current.left === null) {
current.left = newNode;
}

current = current.left;
} else {
if (current.right === null) {
current.right = newNode;
}

current = current.right;
}
}
}


let tree = new BinarySearchTree();
tree.insert(10)
tree.insert(5)
tree.insert(13)
tree.insert(11)
tree.insert(2)
tree.insert(16)
tree.insert(7)

console.log(tree);

最佳答案

如果有节点,插入函数将迭代,直到找到放置新节点的位置 - current.right 或 current.left。之后它将把当前节点设置为左或右。这意味着在下一次迭代中它将检查 current.value === value 是否存在,如果为 true,则 while(true) 无限循环将退出,这是通过“return”完成的,您也可以使用“break”代替。

阅读本文 ( Does return stop a loop? ) 以了解如何“返回;”作品。

编辑:要清除它,“return”和“break”具有不同的功能,但在您的情况下两者具有相同的效果。

关于javascript - JavaScript 中的 while(true) - 它是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52993250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com