Как изменять переменную в функции при каждой итерации цикла

280
31 марта 2017, 22:44
for (int k = 0; k <= t - 2; k++) {
    double a, b;
    a = A.get(0) + (-gt(k + 1) + 640 + rt(0)); 
    b = A.get(k + 1) + rt(k + 1);
    if (a > b) {
        B.add(b);
    } else {
        B.add(a);
    }
}

Нужно чтобы при каждой итерации цикла в формулах a и b менялся первый элемент с A.get(0) и A.get(k + 1) на B.get(0) и B.get(k + 1).

Answer 1

Если A и B наследуют общий интерфейс, можно объявить переменную этого общего типа и присваивать ей A и B по очереди.

Base c = null;
for (int k=0; k<=t-2; k++) {
    c = (k % 2 == 0) ? A : B;
    a=c.get(0)+(-gt(k+1)+640+rt(0)); 
    b=c.get(k+1)+rt(k+1);
    ...
}
Answer 2
private boolean aFunc = true;
private boolean bFunc = true;
private double getFA(){
    double result;
    if (aFunc)
       result = A.get(0);
    else
       result = B.get(0)
    aFunc = !aFunc;
    return result;
}

Далее по аналогии пишем метод getFB(). Ну и ваш код изменится на

 a = getFA() + (-gt(k+1)+640+rt(0)); 
b = getFB() + rt(k+1);
READ ALSO
Java мессенджер клиент-сервер

Java мессенджер клиент-сервер

Сделал простеньки мессенджер на джава на сокетах но она работает на локальной сетиКак сделать так чтобы она работала через интернет

350
Отображение PopupMenu в JComboBox

Отображение PopupMenu в JComboBox

При создании JComboBox и использовании своего компонента для рендера, некорректно отображается popupmenu до первого выбора:

251
Зачем нужны произвольные теги

Зачем нужны произвольные теги

ЗдравствуйтеПодскажите пожалуйста, на некоторых сайтах встречаю произвольные теги

348