【发布时间】:2019-05-13 20:38:57
【问题描述】:
我已经对一个双值数组进行了排序
Arrays.sort(banding);
然后我想设置具有特定字符串值“CUKUP”的最高值的文本。如果不是“CUKUP”,则必须是“LEBIH”,我不希望任何“LEBIH”字符串值作为输出
if (banding[6].getKetTotal().equals("CUKUP")) {
untungtertinggi.setText(Double.toString(banding[6].harga));
} else if (banding[6].getKetTotal().equals("LEBIH")) {
if (banding[5].getKetTotal().equals("CUKUP")) {
untungtertinggi.setText(Double.toString(banding[5].harga));
}
}else if (banding[5].getKetTotal().equals("LEBIH")) {
if (banding[4].getKetTotal().equals("CUKUP")) {
untungtertinggi.setText(Double.toString(banding[4].harga));
}
}else if (banding[4].getKetTotal().equals("LEBIH")) {
if (banding[3].getKetTotal().equals("CUKUP")) {
untungtertinggi.setText(Double.toString(banding[3].harga));
}
}else if (banding[3].getKetTotal().equals("LEBIH")) {
if (banding[2].getKetTotal().equals("CUKUP")) {
untungtertinggi.setText(Double.toString(banding[2].harga));
}
}else if (banding[2].getKetTotal().equals("LEBIH")) {
if (banding[1].getKetTotal().equals("CUKUP")) {
untungtertinggi.setText(Double.toString(banding[1].harga));
}
}else if (banding[1].getKetTotal().equals("LEBIH")) {
if (banding[0].getKetTotal().equals("CUKUP")) {
untungtertinggi.setText(Double.toString(banding[0].harga));
}
}
这种编码仍然是错误的,因为当所有数组都有字符串值“CUKUP”时,它不会将最高的双精度值作为输出
【问题讨论】:
-
如果你已经对数组进行了排序,为什么不遍历数组(可能向后),并检查值是
CUKUP还是LEBIH。然后您可以简化逻辑。 -
你确定排序是否按预期工作,我问的是因为如果所有项目都包含 CUKUP 那么第一个 if 应该输出正确的值?
-
@JoakimDanielson 当我对数组进行排序并一一检查它是否正确时。但是当我设置一个 if 条件时,它不能按预期工作
标签: java arrays if-statement arraylist