変数a
は、0,1または2にすることができます。値は、余分whileループ条件の数です。私はswitch
とcase
を使ってこれを行うことができますが、もっと良い方法があるのでしょうか?余分なwhileループ条件...条件に基づいて
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
と評価されます。ループ内のTHENは、すべての条件を真に1つずつ変更します。しかし、すべての条件が成立するまで、ループを続けてください。
擬似コード(私はデモのために、それはいくつかの欠点を持って知っている):
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です、そしてOPはなぜそのアプローチ(と思われる)がJavaでは機能しないのかを説明しています –