创建一个子模块FOR循环

时间:2013-10-17 11:30:34

标签: java loops for-loop

是否可以创建此子模块?当所有代码都在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;

    }
    }

1 个答案:

答案 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;
}

我已将您的numberinWeight变量移至方法正文,并将inWeight重命名为result,以避免与方法本身混淆。另请注意,您要返回用户输入的最后一个数字,而不是总重量。