【发布时间】:2021-02-14 04:05:05
【问题描述】:
第一个 for 循环将正确的系数和指数值打印为 由值字符串提供,但第二个 for 循环哪个类 addLink 方法不打印正确的值?我看不到什么 问题是。为什么第一个 for 循环的输出与第二个循环的输出不匹配?
代码已被编辑。我已将 addLink 方法移到第一个 for 循环中,我的输出如下所示。这仍然不是我想要的。
public class Polyvalues {
Term head;
public Polyvalues() {
String value = "5 6 8 9 1 9";
String sub[] = value.split(" ");
double coeff = 0;
int exp = 0;
for (int i = 0; i < sub.length; i++)
{
if (sub[i].isEmpty()) {
System.out.println("No input");
}
if (i % 2 == 0) {
try {
coeff = Double.parseDouble(sub[i]);
System.out.println("Coeff is " + coeff);
} catch (NumberFormatException e) {
System.out.println("Fix This");
}
} else {
try {
exp = Integer.parseInt(sub[i]);
System.out.println("The exp is " + exp);
} catch (NumberFormatException e) {
System.out.println("Fix This");
}
}
this.addLink(coeff, exp);//moved from commented out for-loop
}
System.out.println("*******************************************");
/*for (int i = 0; i < sub.length; i++)
{
this.addLink(coeff, exp);
}*/
}//end constructor
public void addLink(double a, int b)
{
if(head == null)
{
head = new Term(a,b);
return;
}
Term currNode = head;
while(currNode.next != null)
{
currNode = currNode.next;
}
currNode.next = new Term(a,b);
//addLink(a,b);
}
static class Term{
double coeff;
int exp;
Term next;
Term(double c, int e){
this.coeff = c;
this.exp = e;
this.next = null;
System.out.println("The Coeff "+ this.coeff);
System.out.println("The Exp "+ this.exp);
}
}
public static void main(String[] args)
{
Polyvalues p1 = new Polyvalues();
}
} //end of class
现在,当我将 addLink 方法移到第一个 for 循环中时,我得到了这个。为什么我在打印时会得到这些重复的输出?
当这是我想要的: 是我的节点吗?
【问题讨论】:
标签: java for-loop methods polynomials