Quyết định với if và else
Thuộc phần Tạo tính tương tác trong hành trình Flutter của Coddy. Bài học 18 trên 34.
if chỉ chạy code khi một điều gì đó đúng. else chạy đoạn code khác khi điều đó không đúng:
if (_count < 10) {
_count++;
} else {
print('Full');
}Phần nằm trong dấu ngoặc đơn là một phép so sánh, có kiểu bool: đúng hoặc sai.
a == b: a bằng b (hai dấu bằng; một dấu dùng để gán giá trị cho biến)a != b: a không bằng ba < bvàa > b: nhỏ hơn, lớn hơna <= bvàa >= b: nhỏ hơn hoặc bằng, lớn hơn hoặc bằng
Hãy chú ý đến giới hạn: với 8 chiếc cốc, _glasses < 8 là sai, nhưng _glasses <= 8 vẫn đúng và cho phép thêm một chiếc cốc thứ chín.
Bên trong lớp State, context luôn có sẵn trong mọi phương thức, không chỉ trong build, vì vậy một phương thức cũng có thể hiển thị SnackBar.
Thử thách
DễUống tám cốc nước mỗi ngày là đủ. Thay đổi _drink để hàm chỉ thêm một cốc khi số cốc ít hơn 8. Nếu không, hàm sẽ hiển thị SnackBar có nội dung That is enough for today.
Tự làm thử
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')),
],
),
),
);
}
}
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Tạo tính tương tác
5Quyết định
bool và toán tử ? :Quyết định với if và elseVà, hoặc, phủ định trong DartHiển thị và ẩn widgetLàm mờ nútTự luyện tập: Trình biên dịch Flutter online