Menu
CoddyTech

Decisioni con if ed else

Fa parte della sezione Rendere l’app interattiva del percorso Flutter di Coddy. Lezione 18 di 34.

if esegue il codice solo quando una condizione è vera. else esegue altro codice quando non lo è:

if (_count < 10) {
  _count++;
} else {
  print('Full');
}

Ciò che va tra parentesi è un confronto, che è un valore bool: true o false.

  • a == b: a è uguale a b (due segni di uguale; uno serve per assegnare un valore a una variabile)
  • a != b: a non è uguale a b
  • a < b e a > b: minore di, maggiore di
  • a <= b e a >= b: minore o uguale a, maggiore o uguale a

Fai attenzione al limite: con 8 bicchieri, _glasses < 8 è false, ma _glasses <= 8 è ancora true e lascia passare un nono bicchiere.

All'interno della classe State, context è disponibile in ogni metodo, non solo in build, quindi anche un metodo può mostrare uno SnackBar.

challenge icon

Sfida

Facile

Otto bicchieri d'acqua al giorno sono sufficienti. Modifica _drink in modo che aggiunga un bicchiere solo quando ce ne sono meno di 8. Altrimenti mostra una SnackBar che dice That is enough for today.

Provalo tu

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: const HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  int _glasses = 0;

  void _drink() {
    setState(() {
      _glasses++;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Water')),
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            Text('Glasses today: $_glasses', style: const TextStyle(fontSize: 24)),
            const SizedBox(height: 16),
            ElevatedButton(onPressed: _drink, child: const Text('Drink a glass')),
          ],
        ),
      ),
    );
  }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Rendere l’app interattiva

Esercitati da solo: Compilatore Flutter online