max (kotlin.math) în Kotlin

max returnează cel mai mare dintre două numere de același tip, min pe cel mai mic.

Sintaxă
import kotlin.math.max
fun max(a: Int, b: Int): Int
fun max(a: Double, b: Double): Double
fun min(a: Int, b: Int): Int

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ște maxOf(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.