私が書いているフォームに対して検証する必要がある次の(簡略化された)条件があります:
a> b
a> c
a> d
b> c
b> d
c> d
グラフィカルに、これは次のように見ることができます。
ユーザーはa、b、c、およびdの値を自由に入力できます。そのため、これらのルールに従っていることを確認するために検証する必要があります。私が抱えている問題は、各ステートメントを明確かつ効率的に評価するものを書くことです。もちろん、最も明白な方法は、各ステートメントをifステートメントとして個別に評価することです。残念ながら、これには多くのコード行が必要であり、ほとんど同じことを行う一連のifブロックでメソッドを乱雑にすることは避けたいと思います。配列を使用して、次のネストされたforループソリューションを思いつきました。値の配列を作成し、それを2回ループしました(Pythonのような擬似コードで示されています)。
A = [a, b, c, d]
for i in range(3):
for j in range(i, 4):
if i > j and A[i] >= A[j]:
print("A[i] must be less than A[j]")
else if i < j and A[i] <= A[j]:
print("A[j] must be greater than A[i]")
このソリューションで私が抱えている問題は、読みにくく、理解しにくいことです。ソリューションは明確ではありません。
私はそこにもっと良い、より明確な答えがあるというこのしつこい感じを持っています、しかし私は私の人生のためにそれを考えることができません。これは宿題でも何でもありません。私は実際にプロジェクトに取り組んでおり、この問題(またはその微妙なバリエーション)が複数回発生したため、明確で効率的な再利用可能なソリューションを作成したいと思います。任意の入力をいただければ幸いです。ありがとう!