使用for循环和数组的多个方法

时间:2013-11-05 12:55:50

标签: java arrays for-loop method-call

好的我会在最后发布我的Java代码,但这就是我需要它做的事情。 在main方法中,声明了一个名为Lights的布尔数组,它通过how_many(声明为int)运行。

然后我必须调用一个名为 initialize 的方法,我将在lights数组中传递lights数组的大小作为第一个和第二个参数(分别)。

接下来是一个for循环,它一遍又一遍地调用方法do_pass,直到我到达how_many结束并切换每个数组位置为true或false。然后,这将从第二个位置开始,如果为true,则将切换为false,如果为false则将切换为true。它将执行此操作,直到它从how_many开始并以how_many结束。

然后通过调用方法 how_many_are_on

打印出切换为真的数量(打开)

到目前为止,这是我的代码:

import java.util.Scanner;

public class Lab7
{

   public static void main(String args[])
   {
      Scanner stdin = new Scanner(System.in);
      int how_many = stdin.nextInt();
      boolean [] lights = new boolean [how_many];

      initialize (lights[0].how_many);
      for (int a = 0; a < how_many; a++)
      do_pass(lights.length);
   }     

   public static void initialize (boolean [] resets, int size)
   {
      for (int i = size; i < size; i++)
         if (lights[how_many] == true)
            lights[how_many] = false;
   }  

   public static void do_pass(boolean lights[], int start, int end, int skip)
   {
      for (int index = start; index < end; index += skip)
         lights[index] = !(lights[index]);
   }

   public static int how_many_are_on(boolean lights[], int size)
   {
      int sum = 0;
      for (int count = 0; count < size ; count++)
      {
         if (lights[count] == true)
         {
            return true;
            sum ++;
         }
      }
      return false;
   }
}

1 个答案:

答案 0 :(得分:0)

您的问题是您没有向您的方法传递适量的参数。这是您的initialize方法的签名:

public static void initialize (boolean [] resets, int size)

这意味着它接收一个布尔数组和一个int。在您的主要方法中,您可以这样称呼它:

initialize (lights[0].how_many);

正如您所看到的,您给了它一个值,而不是您需要传递的值。

解决此问题,以及其他一些不传递所需数量的参数的方法。