Member 12900746 Ответов: 1

Проблема с увеличением переменной I


Здравствуйте, как я могу получить [i]=1 во втором вызове функции?

public void pridajJeldo (){
		Scanner sc = new Scanner(System.in, "Windows-1250");
		Food [] objFood = new Food[20];
		System.out.println("Add name of food, protein, carbohydrates and calories:");
		String name = sc.next();
		int protein = Integer.parseInt(sc.next()); 
		int carbohyd = Integer.parseInt(sc.next());
		int calories = Integer.parseInt(sc.next());
		int i = 0;
		objFood[i] = new Food(name, protein, carbohyd, calories); 
		i = i + 1;
	}


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

Это проблема программирования мышления...

Mohibur Rashid

Хорошо, теперь попробуйте отладить

Peter Leow

Объясните, чего вы хотите достичь. Поскольку переменная i и массив objFood помещаются в метод, вызов этого метода всегда будет воссоздавать objFood, и i всегда инициализируется нулем перед тем, как принять входные данные. Они недоступны вне этого метода.

1 Ответов

Рейтинг:
1

CPallini

Переменная i должен быть членом класса (или, как альтернатива, вы можете передать его в качестве параметра метода).

Попробуйте, например

class A
{
  int i; // decalre i as member of the class

  public void show()
  {
    System.out.println(i);
    i = i + 1; // increment i at each call
  }


  public static void main( String args[])
  {
    A a = new A();

    a.show();
    a.show();
    a.show();
  }
}