Menu
CoddyTech

Условия с if и else

Часть раздела Добавляем интерактивность путешествия по Flutter на Coddy. Урок 18 из 34.

if выполняет код только тогда, когда условие истинно. else выполняет другой код, когда оно ложно:

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

В скобках записано сравнение, результат которого имеет тип bool: true или false.

  • a == b: a равно b (два знака равенства; один знак используется для присваивания значения переменной)
  • a != b: a не равно b
  • a < b и a > b: меньше, больше
  • a <= b и a >= b: меньше или равно, больше или равно

Обрати внимание на граничное значение: при 8 стаканах _glasses < 8 — false, но _glasses <= 8 всё ещё true и пропускает девятый стакан.

Внутри класса State значение context доступно в каждом методе, а не только в build, поэтому метод тоже может показать SnackBar.

challenge icon

Задание

Легко

Восьми стаканов воды в день достаточно. Измени _drink так, чтобы она добавляла стакан, только пока их меньше 8. В противном случае она показывает SnackBar с сообщением That is enough for today.

Попробуйте сами

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 iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Добавляем интерактивность

Потренируйтесь самостоятельно: Онлайн-компилятор Flutter