是否可以创建此子模块?当所有代码都在main中时,代码工作正常,而不是作为子模块。
{
public static void main (String [] arsg)
{
int number, inWeight, weight;
boolean veriWeight;
weight=inWeight();
System.out.println("Average month weight is "+(weight/12));
System.exit(0);
}
private static int inWeight ();
{
for (int i=1; i<=12; i++)
{
number=ConsoleInput.readInt("enter month weight");
while (number<=0)
{
System.out.println("error, try again");
number=ConsoleInput.readInt("enter month weight");
}
inWeight += number;
}
return number;
}
}
答案 0 :(得分:0)
您不能只在方法中移动代码块。您必须小心将代码中所需的所有变量作为参数传递给该方法,或者在方法体的主体中声明它们;否则代码无法访问它们,因为它们位于不同的“scope”。
在您的情况下,所有变量都在main
方法中声明,因此在inWeight
方法中需要它们时它们不可用。将代码更改为这样的代码,然后就可以了。
public static void main (String [] arsg) {
int weight = inWeight();
System.out.println("Average month weight is " + (weight / 12));
}
private static int inWeight() {
int result = 0;
for (int i=1; i<=12; i++) {
int number = ConsoleInput.readInt("enter month weight");
while (number <= 0) {
System.out.println("error, try again");
number = ConsoleInput.readInt("enter month weight");
}
result += number;
}
return result;
}
我已将您的number
和inWeight
变量移至方法正文,并将inWeight
重命名为result
,以避免与方法本身混淆。另请注意,您要返回用户输入的最后一个数字,而不是总重量。