У меня довольно большой код с четырьмя различными условиями, которые я пытался сократить с помощью условного тернарного оператора как descibed here. Однако я не могу управлять правильным синтаксисом, так как у меня более двух условий. Может ли кто-нибудь объяснить, как использовать тернарный оператор в таком случае? Мой код опускается нижеjava - использование тернарного оператора
И нет, я не прошу, чтобы написать код для меня, я ищу объяснение тройного использования оператора с несколькими условиями
if (mp.getCurrentPosition()/1000/60 < 10
&& mp.getCurrentPosition()/1000 % 60 < 10) {
tvTimeElapsed.setText("0"
+ Integer.toString(mp.getCurrentPosition()/1000/60)
+ ":" + "0"
+ Integer.toString(mp.getCurrentPosition()/1000 % 60));
} else if (mp.getCurrentPosition()/1000/60 < 10
&& mp.getCurrentPosition()/1000 % 60 >= 10) {
tvTimeElapsed.setText("0"
+ Integer.toString(mp.getCurrentPosition()/1000/60)
+ ":"
+ Integer.toString(mp.getCurrentPosition()/1000 % 60));
} else if (mp.getCurrentPosition()/1000/60 >= 10
&& mp.getCurrentPosition()/1000 % 60 < 10) {
tvTimeElapsed
.setText(Integer.toString(mp.getCurrentPosition()/1000/60)
+ ":"
+ "0"
+ Integer.toString(mp.getCurrentPosition()/1000 % 60));
} else {
tvTimeElapsed
.setText(Integer.toString(mp.getCurrentPosition()/1000/60)
+ ":"
+ Integer.toString(mp.getCurrentPosition()/1000 % 60));
}
Вам просто нужно будет вложить несколько условных операций друг в друга. Но это уродливо и трудно читать. Так не надо. =) –
Обычный совет: не надо! Попытка внедрить несколько условий с несколькими вложенными '?:' Просто приводит к тому, что код трудно читать. –
Я бы поставил под вопрос, почему вы пытаетесь его укоротить. Короткий код не всегда лучше. Как бы то ни было, код, который вы опубликовали, довольно сложный, поэтому IMO рефакторинг его для использования тройных операторов сделает его невероятно нечитаемым. –