所以,我知道你不能在case語句中使用變量。我希望有人能夠指出我的代碼作爲替代品是非常有效的。 (例如,我可以做一堆ifs)。Java在case語句中使用變量
情況是我有一個對象數據的數組,我想遍歷該數組。數組中的位置由如下所示的名稱給出(int ... ordinal語句)。基本上我必須爲數組的某些成員(如果它們是離散數據,如C_VENT_RATE)分配生成'結果'對象。我可以很容易地看到這一點的唯一方法是做一堆如if(如quals(pr_int))的ifs。
ArrayList<String[]> rawEKGs = ekgFile.getForMrno(docInfo.getMedicalRecordNumber());
for (String[] parts : rawEKGs) {
for (int i=0; i< parts.length; i++)
{
Result result = docInfo.getResult();
boolean process = true;
final int vent_rate = UncEKG.COL_NAMES.C_VENT_RATE.ordinal();
int art_rate = UncEKG.COL_NAMES.C_ART_RATE.ordinal();
int pr_int = UncEKG.COL_NAMES.C_PR_INTERVAL.ordinal();
int qrs_dur = UncEKG.COL_NAMES.C_QRS_DURATION.ordinal();
int qt_qtc = UncEKG.COL_NAMES.C_QT_QTC.ordinal();
int prt = UncEKG.COL_NAMES.C_PRT_AXES.ordinal();
switch(i) {
case : // something
break;
default: process = false;
}
在早期版本的Java語言中,case語句的值必須是文字/常量整數。我知道限制已經在更新的版本中被放寬,但我不知道細節。 –
如果您知道可能的案例值範圍很窄(可能是幾十個),您可以使用映射數組來映射您的索引值和您定義的「常量」。然而,不確定是否值得付出努力,而不是僅僅使用if梯子。 –
所以你知道數組中的數據的索引,你必須處理(從枚舉的序數值)?爲什麼你不能通過該索引訪問數據:'String data = parts [i]; doSomeThingWithData(數據); ......而不是遍歷整個數組,並且如果你發現一個有趣的部分,就要採取行動。 – Pyranja