Menu
CoddyTech

Dart의 And, Or, Not

Coddy Flutter 여정의 앱에 상호작용 추가하기 섹션에 포함된 레슨. 34개 중 19번째.

bool 하나만으로는 부족한 경우가 많습니다. Dart에서는 세 가지 연산자를 사용합니다.

  • a && b (그리고): 둘 다 true일 때만 true입니다
  • a || b (또는): 하나 이상이 true이면 true입니다
  • !a (아님): true와 false를 뒤집습니다
bool _hasTicket = true;
bool _isLate = false;

_hasTicket && !_isLate   // true: 탑승할 수 있습니다
_hasTicket || _isLate    // true: 적어도 하나가 참입니다

결과는 bool이므로 조건식의 ? 앞이나 if 안에 사용할 수 있습니다. 괄호를 사용하면 읽기 더 쉽습니다.

Text((_hasTicket && !_isLate) ? 'Board now' : 'Wait')
challenge icon

챌린지

쉬움

문은 열쇠와 코드를 모두 갖고 있어야 열립니다. 두 줄을 변경하세요.

  • 첫 번째 줄은 열쇠를 갖고 그리고 코드를 알고 있으면 The door is open이라고 표시하고, 그렇지 않으면 The door is locked라고 표시합니다.
  • 두 번째 줄은 열쇠를 갖고 또는 코드를 알고 있으면 Getting closer라고 표시하고, 그렇지 않으면 Find the key and the code라고 표시합니다.

직접 해보기

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> {
  bool _hasKey = false;
  bool _knowsCode = false;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Door')),
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            const Text('The door is locked', style: TextStyle(fontSize: 24)),
            const Text('Find the key and the code'),
            const SizedBox(height: 16),
            ElevatedButton(
              onPressed: () {
                setState(() {
                  _hasKey = true;
                });
              },
              child: const Text('Take the key'),
            ),
            ElevatedButton(
              onPressed: () {
                setState(() {
                  _knowsCode = true;
                });
              },
              child: const Text('Learn the code'),
            ),
          ],
        ),
      ),
    );
  }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

앱에 상호작용 추가하기의 모든 레슨

직접 연습해 보세요: 온라인 Flutter 컴파일러