2015-05-17 4 views
-2

Скажем, у меня есть три класса, каждая из которых имеет переменную int, которая представляет очередь: q1, q2 и q3. Все переменные по крайней мере равны нулю и постоянно меняются. Также каждый из трех классов имеет логическое поле: shortestQueue1, shortestQueue2 и shortestQueue3. Мне нужен метод, который сравнивает q1, q2 и q3 в заданное время и устанавливает для переменной shortestQueue значение true, а две другие - false. Если два одинаково маленькие, то переменная с наименьшим номером в имени устанавливается (q1 над q2, q2 над q3).Эффективное обнаружение кратчайшей очереди

Есть ли другой способ вместо написания множества утверждений if/else?

+0

У вас уже есть примеры кода? – chris

+0

Укажите код. Вы можете использовать поле с длиной очереди и сравнить их. – Bubletan

+0

Ну, я мог бы написать множество операторов if: if (q1 == q2 && q2 Arthur

ответ

4

Я считаю, что вы на самом деле не нужно 27 сослагательного наклонения для 3-х переменных ... 3 должны сделать ...

Заменить System.outs с все, что вам нужно сделать, чтобы ваши булевы.

if(q1<=q2 && q1<=q3){   // q1 is the smallest 
     System.out.println("q1"); 
    } else if (q2<=q3) {   // q2 is smaller than q3, we have tested q1 in the previous if 
     System.out.println("q2"); 
    } else {      // if neither q1 nor q2 is the smallest, it has to be q3 
     System.out.println("q3"); 
    } 
Смежные вопросы