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.isEveneste 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.