gpt4 book ai didi

java - 变量名无法解析为变量 - 我找不到问题所在

转载 作者:行者123 更新时间:2023-11-30 05:35:59 26 4
gpt4 key购买 nike

在第 110 行,它显示“return front3”,我收到此错误。我不知道为什么,我在 while 循环内创建了 Node front3 。

    public static Node add(Node poly1, Node poly2) {
/** COMPLETE THIS METHOD **/
// FOLLOWING LINE IS A PLACEHOLDER TO MAKE THIS METHOD COMPILE
// CHANGE IT AS NEEDED FOR YOUR IMPLEMENTATION
Node ptr1 = poly1;
Node ptr2 = poly2;
Node ptr3 = null;
// Node front3;

while (ptr1 != null && ptr2 != null) {
if (ptr1.term.degree == ptr2.term.degree) {
if (ptr3 == null) {
Node front3 = new Node(ptr1.term.coeff + ptr2.term.coeff,ptr1.term.degree,null);
ptr3 = front3;
} else {
Node temp = new Node(ptr1.term.coeff + ptr2.term.coeff,ptr1.term.degree,null);
ptr3.next = temp;
ptr3 = temp;
}
ptr1 = ptr1.next;
ptr2 = ptr2.next;
} else if ( ptr1.term.degree > ptr2.term.degree) {
if (ptr3 == null) {
Node front3 = new Node(ptr1.term.coeff,ptr1.term.degree,null);
ptr3 = front3;
} else {
Node temp = new Node(ptr1.term.coeff, ptr1.term.degree , null);
ptr3.next = temp;
ptr3 = temp;
}
ptr1 = ptr1.next;
} else if ( ptr1.term.degree < ptr2.term.degree ) {
if (ptr3 == null) {
Node front3 = new Node(ptr2.term.coeff, ptr2.term.degree,null);
ptr3 = front3;
} else {
Node temp = new Node(ptr2.term.coeff,ptr2.term.degree,null);
ptr3.next = temp;
ptr3 = temp;
}
ptr2 = ptr2.next;
}
}


if (ptr3 == null) {
return null;
}

return front3;
}

然后我创建了一个不同的节点,Node front4,将其初始化为某些内容,然后我的程序运行了。这是在 while 循环之外完成的。

最佳答案

发生这种情况是因为对象仅存在于声明它们的 block 内。在您的情况下,您的 front3 将仅存在于您用于声明它的 if block 内:

if (ptr3 == null) {
Node front3 = new Node(ptr2.term.coeff, ptr2.term.degree,null);
ptr3 = front3; // Can use it here
}
// Cannot use it here

如果您确实需要返回 front3 对象,您应该在“方法级别”中声明它,就像您对 ptr 节点所做的那样。事实上,您已经在那里发表了评论。如果您只需应用以下更改,您就可以开始了:

当前:

// Node front3;

之后:

Node front3 = null; // Needs to initialize

并且您的 if 语句应更改为以下示例:

当前:

if (ptr3 == null) {
Node front3 = new Node(ptr1.term.coeff,ptr1.term.degree,null);
ptr3 = front3;
}

之后:

if (ptr3 == null) {
front3 = new Node(ptr1.term.coeff,ptr1.term.degree,null); // No need for "Node", as it was already declared
ptr3 = front3;
}

诗。我没有审查逻辑。这只是为了解释为什么您会收到“变量名称无法解析为变量”错误。

关于java - 变量名无法解析为变量 - 我找不到问题所在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56614527/

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