這聽起來像你可能想要類似於:
private static final List<String> VALID_CURRENCIES =
Arrays.asList("RANDOM", "RANDOM2", "RANDOM3");
...
if (currencyChosen.equals(convertTo) && VALID_CURRENCIES.contains(currencyChosen)) {
JOptionPane.showMessageDialog(null, "SAME SENTENCE");
}
調整變量名稱以適應您的上下文。你也可以使用Set<String>
而不是List<String>
,如果順序從來沒有重要的......只有少量有效的選項,它在性能上並沒有太大的差別。當N變大時,HashSet
相對於列表的O(N)的O(1)性質僅僅是重要的。當然,無論如何,您可能想要使用Set<String>
,以便將它作爲一個更清晰的對象來處理它只有。我的猜測是,無論如何,您可能還有另一個理由來獲得有效貨幣的列表(按特定順序) - 在這種情況下,也可以在此處使用該列表。
然而,隨着你的上下文的描述:
我在寫一個基本的轉換器和我試圖輸出,例如,選擇「從美元轉換爲美元」會輸出「你不能執行該操作
這聽起來像你可能只需要
if (currencyChosen.equals(convertTo)) {
...
}
如果你以某種方式讓currencyChosen
和convertTo
不有效,你應該檢查,首先:
if (!VALID_CURRENCIES.contains(currencyChosen)) {
// Display error for invalid source currency
return;
}
if (!VALID_CURRENCIES.contains(convertTo)) {
// Display error for invalid target currency
return;
}
if (currencyChosen.equals(convertTo)) {
// Display error for source == target
return;
}
基本上,儘量使你的錯誤條件正交就可以。
也許提取一種方法。請注意,您應該總是使用大括號來表示if/else – 2016-02-05 06:46:52
您可以進行總體檢查,以確定'currencyChosen'等於'convertTo';那麼你只需要檢查其中一個關於文字的值。 (哦,除了第一種情況下有一個空間 - 是故意的嗎?) –
第一個示例中的「RANDOM3」和「RANDOM 3」之間的區別是故意的嗎? –