我已被驗證爲一個形式我寫需要以下的(簡化的)條件:efficently並明確評估六個條件
A> B
A> C
一> d
b> C
b> d
C> d
圖形,這可以被看作是:
用戶有自由爲A,B,c和d,這就是爲什麼他們需要進行驗證,以確保輸入值,他們遵守這些規則。我遇到的問題是寫一些能夠清楚而有效地評估每條語句的東西。當然,最明顯的方法是將每個陳述分別作爲if語句進行評估。不幸的是,這佔用了很多代碼行,我寧願避免使用一堆幾乎完全相同的if塊來混淆方法。我使用數組提出了以下嵌套for循環解決方案。我內置的值的數組,並環繞在它的兩倍(在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]")
我有這種解決方案的問題是,它是難以閱讀和理解 - 只是解決方案不清楚。
我有這種嘮叨的感覺,那裏有一個更好,更清晰的答案,但我無法想象它爲我的生活。這不是家庭作業或任何東西 - 我實際上正在研究一個項目,並且這個問題(或其細微的變化)不止一次地出現,所以我想製作一個清晰和高效的可重用解決方案。任何輸入將不勝感激。謝謝!
看來,要求是'A'按降序排列,沒有重複的元素。 –
而不是告訴用戶他們以錯誤的順序輸入了數值,你可以靜靜地對它們進行排序,以便它們按正確的順序排列嗎?或者這些值不能以這種方式互換? – Kevin
在我的特殊問題中,並沒有真正的秩序。你基本上有四個框,a b c和d,你應該知道我上面列出的規則。如果您的輸入無效,我想告訴用戶告訴他們他們應該改變什麼,確切地說。這意味着列出所有失敗的案例。 – ccampo