Переменная a
может быть 0, 1 или 2, где значение равно числу дополнительных условий цикла. Я могу сделать это, используя switch
и case
, но мне интересно, есть ли лучший способ сделать это?Дополнительные условия цикла ... на основе условия
switch (a) {
case 0: while (condition_1) {
// ...
} break;
case 1: while (condition_1 || condition_2) {
// ...
} break;
case 2: while (condition_1 || condition_2 || condition_3) {
// ...
} break;
}
Решение этой проблемы в Python было использовать словарь и хранить соответствующие лямбда-выражений в соответствующем индексе. Однако мои условия «не являются окончательными или окончательно окончательными», поэтому они не могут использоваться в выражении лямбда в Java.
Целью здесь является не получение либо while (true)
, либо while (false)
, и покончить с этим. Это должно начаться с while (...something)
, который оценивается false
. Затем внутри цикла делайте что-то, что меняет все условия на истинные по одному. Но пока все условия не верны, продолжайте цикл.
код Псевдо (я знаю, что есть некоторые недостатки, просто для демонстрации):
a can be 0,1,2
p = 5
q = 7
r = 10
s = 14
if a = 1
while p != q -> p+=1
if a = 2
while p!= q || p!= r -> p+=1
Кроме того, это научить меня ловить рыбу вместо того, чтобы дать мне вопрос типа рыбы.
вам нужен помощник, который возвращает логическое значение. – HuStmpHrrr
Пожалуйста, не делайте двойной публикации http://stackoverflow.com/questions/36025026/have-extra-while-loop-conditions-based-on-a-condition?lq=1 – MCMastery
@MCMastery Это python, это java , и ОП объясняет, почему этот подход (предположительно) не работает в java –