Member 13659267 Ответов: 1

Как передать значение переменной, которая объявлена в цикле?


public class Solution {


  public static int findDifference(int[] input){


      int e=0; int es=0;
          for(int i=0;i<input.length;i+=2)
                {

                   e+=input[i];
                   es=e; // But now after the loop gets terminated the value of es will gets vanishes and the value will get changed to 0. How can i pass the value after the loop?
               }

          int o=0; int os;
          for(int j=1; j<input.length;j+=2)
            {
              os=0;
              o+=input[j];
              os=o; // But now after the loop gets terminated the value of os will gets vanishes and the value will get changed to 0. How can i pass the value after the loop?
            }
      return(es-os);

  }


Что я уже пробовал:

Выходные ботинки 0, так как es и os объявлены равными 0 вне цикла.

1 Ответов

Рейтинг:
7

CPallini

Значение сохраняется, если переменная определена вне цикла. Полагаю, вы имели в виду

public class Solution
{
  public static int findDifference(int[] input)
  {
      int even_sum = 0;
      int odd_sum = 0;
      for(int i=0;i<input.length;i+=2)
      {
        even_sum +=input[i];
        if ( i+1 >= input.length ) break;
        odd_sum += input[i+1];
      }
      return (even_sum - odd_sum);
  }

  public static void main(String[] args)
  {
    int [] a = new int []{ 1,2,3,4 };
    System.out.printf("The difference is %d\n", findDifference(a));
  }
}


Maciej Los

5ed!

Member 13659267

Спасибо!