Ce face max (kotlin.math)
max(a, b) și min(a, b) din kotlin.math primesc exact două numere de același tip (Int, Long, Float sau Double) și returnează unul dintre ele. Dacă unul dintre argumente este NaN, rezultatul este NaN.
Pentru trei sau mai multe valori, sau pentru alte tipuri comparabile (texte, date), folosește maxOf / minOf, care nu au nevoie de import. Pentru o listă întreagă există list.max() și list.min().
Parametri
| Parametru | Descriere |
|---|---|
a, b |
Cele două numere comparate, de același tip. |
Ce returnează
Numărul mai mare (max) sau mai mic (min).
Exemple
Exemplul 1: Două valori
Funcționează pentru întregi și pentru zecimale.
import kotlin.math.max
import kotlin.math.min
fun main() {
println(max(7, 12))
println(min(7, 12))
println(max(-2.5, -1.5))
println(min(9.75, 9.5))
}
Rezultat
12
7
-1.5
9.5
Exemplul 2: Limitarea unei reduceri
Reducerea este 10% din preț, dar cel mult 50 de lei; prețul final nu scade sub 0.
import kotlin.math.max
import kotlin.math.min
fun main() {
for (pret in listOf(120.0, 800.0)) {
val reducere = min(pret * 0.10, 50.0)
val final = max(pret - reducere, 0.0)
println("Preț $pret lei: reducere $reducere, final $final")
}
}
Rezultat
Preț 120.0 lei: reducere 12.0, final 108.0
Preț 800.0 lei: reducere 50.0, final 750.0
Exemplul 3: Cel mai mare număr de pe parcurs
Păstrăm maximul întâlnit până acum, actualizat cu max la fiecare pas.
import kotlin.math.max
fun main() {
val temperaturi = listOf(12, 18, 15, 21, 19)
var maxim = Int.MIN_VALUE
for (t in temperaturi) {
maxim = max(maxim, t)
println("Azi $t °C, maxim până acum $maxim °C")
}
}
Rezultat
Azi 12 °C, maxim până acum 12 °C
Azi 18 °C, maxim până acum 18 °C
Azi 15 °C, maxim până acum 18 °C
Azi 21 °C, maxim până acum 21 °C
Azi 19 °C, maxim până acum 21 °C
Greșeli frecvente
- Scrii
max(3, 7, 5). kotlin.math.max primește doar două argumente; foloseștemaxOf(3, 7, 5). - Amesteci tipurile:
max(3, 2.5)nu compilează. Convertește întâi:max(3.0, 2.5).
Comenzi înrudite
maxOf: Returnează cea mai mare (maxOf) sau cea mai mică (minOf) dintre două sau mai multe valori comparabile.Int.coerceIn: Ține un număr între limite: coerceIn(0, 100) îl aduce în interval, coerceAtLeast/AtMost pun doar o limită.abs: abs returnează valoarea absolută a unui număr (fără semn); sign spune dacă numărul e negativ, zero sau pozitiv.