Java说下面的代码有错误,我找不到它。我已经指出了2个问题行,并在正确的行上方添加了注释"问题行"并且我已经指出了与这个问题紧密相关的方法,并且与#34;密切相关的"在它上面发表评论。错误读取"它无法解析处理的符号"我不知道为什么不是因为我事实上已经定义了变量(我已经标记了问题第1行)。当我注意到它发出一个警告,表明处理过的变量从未被使用时,它真的让我感到沮丧。在我定义它的地方,即使它告诉我它不知道它来自我尝试使用它的地方。 p.s.,我确实导入了一个Scanner,我只是在stackoverflow上传代码时切掉了那个部分。
public class sub {
String NameNum;
int FirstNum, SecondNum, ThirdNum;
public sub(){
Scanner input = new Scanner(System.in);
System.out.println("Enter List Name");
NameNum = input.next();
System.out.println("Enter number");
FirstNum = input.nextInt();
System.out.println("Enter number");
SecondNum = input.nextInt();
System.out.println("Enter number");
ThirdNum = input.nextInt();
// Problem Line 1 of 2 below
int[] processed = process(FirstNum, SecondNum, ThirdNum);
}
public void print(){
System.out.println(NameNum + ": " + FirstNum + " " + SecondNum + " "
+ ThirdNum);
}
//Closely related to Problem lines (method below, 3 lines in all)
int[] process(int FirstNum, int SecondNum, int ThirdNum) {
int [] processed = {FirstNum, SecondNum * 2, ThirdNum * 3};
return processed;
}
public void printProcessed(){
//Problem line 2 of 2 below
System.out.println(NameNum + " Processed: " + processed[0] +
processed[1] + processed[2]);
}
}
答案 0 :(得分:1)
在方法中声明变量时,它被称为 local 变量。局部变量只能从它们声明的方法中访问。
要编译代码,请在构造函数之外移动processed
的声明(但将其保留在类中)。然后我们将其称为字段。
答案 1 :(得分:1)
首先,为了便于阅读,请将代码保留在同一缩进处。我正在引用你的方法int[] process(int FirstNum, int SecondNum, int ThirdNum)
,它有一个额外的缩进,乍一看它使它看起来像是属于它上面的方法。
和O.O.上面提到的平衡你的printProcessed()方法引用了一个不存在作为类成员的变量。
在你的构造函数中你有一个变量int []processed
,我认为你想要它作为一个类成员变量。因此,在构造函数之外声明该变量,它应该可以工作。