int.isEven în Dart

Spune dacă un întreg este par (isEven) sau impar (isOdd).

Sintaxă
bool get isEven
bool get isOdd

Ce face int.isEven

isEven este true pentru numerele divizibile cu 2 (0, 2, −4), iar isOdd pentru celelalte. Sunt proprietăți (getter-e), nu metode, deci se scriu fără paranteze: n.isEven.

Funcționează corect și pentru numere negative: (-3).isOdd este true. Echivalentul cu operatori este n % 2 == 0, dar isEven se citește mai ușor.

Ce returnează

Un bool.

Exemple

Exemplul 1: Numere pare și impare

void main() {
  for (var n in [0, 1, 2, 7, -3, -4]) {
    print('$n: par=${n.isEven}, impar=${n.isOdd}');
  }
}

Rezultat

0: par=true, impar=false
1: par=false, impar=true
2: par=true, impar=false
7: par=false, impar=true
-3: par=false, impar=true
-4: par=true, impar=false

Exemplul 2: Rânduri alternate într-un tabel

Un caz des întâlnit: colorezi altfel rândurile pare și impare. Aici le marcăm cu simboluri diferite.

void main() {
  var elevi = ['Ana', 'Mihai', 'Ioana', 'Radu', 'Elena'];
  for (var i = 0; i < elevi.length; i++) {
    var marcaj = i.isEven ? '░' : '█';
    print('$marcaj ${i + 1}. ${elevi[i]}');
  }
  var pare = [3, 8, 12, 5, 6].where((n) => n.isEven).toList();
  print('Pare: $pare');
}

Rezultat

░ 1. Ana
█ 2. Mihai
░ 3. Ioana
█ 4. Radu
░ 5. Elena
Pare: [8, 12, 6]

Greșeli frecvente

  • Scrii n.isEven() cu paranteze. isEven este o proprietate; parantezele dau eroare de compilare.
  • Scrii -3.isOdd: minusul se aplică după proprietate, deci rezultatul este -(3.isOdd), care nu compilează. Pune numărul între paranteze: (-3).isOdd.

Comenzi înrudite

  • int: Tipul pentru numere întregi (fără zecimale): vârste, cantități, note, indici.
  • int.remainder: Restul împărțirii, cu semnul deîmpărțitului; diferă de % la numere negative.