import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
MyApp({super.key});
var myMoney = 4500;
var accountMoney = 4000000;
var minTaxiFare = 4800;
var iPadPrice = 1000000;
var iPhonePrice = 960000;
var friend1Name = "Teddy";
var friend2Name = "Chris";
var friend3Name = "Juno";
var mathScore = [59, 24, 62, 44, 94, 61, 42];
var minPassScore = 80;
var emailAddress = 'dkanrjskclrl';
var phoneNum = '010-1000-';
var password = '1234';
dynamic fn() {
// 1
// if (myMoney >= minTaxiFare) {
// print("택시 탐");
// } else {
// print("걸어 감");
// }
// 2
// if (myMoney >= iPadPrice) {
// print("아이패드 득템");
// } else {
// print("핸드폰 써");
// }
// 3
// if (accountMoney >= iPadPrice + iPhonePrice) {
// print("앱등이");
// } else {
// print("연아햅틱 써라");
// }
// 4
// if (accountMoney >= iPadPrice * 5) {
// print("아이패드 부자");
// } else {
// print("노 아이패드");
// }
// 5
// if ((friend1Name + friend2Name + friend3Name).length >= 10) {
// print("넘아김");
// } else {
// print("안넘어감");
// }
// 6
// if (mathScore[0] >= minPassScore) {
// print("합격");
// } else {
// print("불합격");
// }
// 7
// if (mathScore[0] + mathScore[1] > mathScore[3]) {
// print("높");
// } else {
// print("낮");
// }
// 8
// if (emailAddress.contains("@")) {
// print("굿");
// } else {
// print("다시");
// }
//9
// if (phoneNum.length == 13 && phoneNum.contains("-")) {
// print("굿");
// } else {
// print("다시");
// }
// 10
// if (RegExp(r'^010-?([0-9]{4})-?([0-9]{4})$').hasMatch(phoneNum)) {
// print(true);
// } else {
// print(false);
// }
// 11
// if (password.length < 8) {
// print("비밀번호는 최소 8자 이상을 입력해주세요");
// }
//12
// if (password.length < 8) {
// print(false);
// } else {
// print(true);
// }
}
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: SafeArea(
child: Column(
children: [
const Center(
child: Text("과제"),
),
TextButton(onPressed: fn, child: const Text("if문 실행"))
],
),
),
),
);
}
}
switch (변수명){
case 값A :
값이 A일 때 실행할 명령문;
break;
case 값B :
값이 B일 때 실행할 명령문;
break;
case 값C :
값이 C일 때 실행할 명령문;
break;
case 값D :
값이 D일 때 실행할 명령문;
break;
case 값E :
값이 E일 때 실행할 명령문;
break;
default :
위의 값 A ~ E 모두 아닐때 실행할 명령문;
}
switch문에 경우 변수명은 값을 검사할 변수를 넣고 case문에 있는 값과 일치하면 명령문이 실행이 된다.
일치하는 값이 없으면 마지막 default문이 실행된다.
if문 보다는 빠르다는 장점이 있다.
// main.dart
import 'package:flutter/material.dart';
import 'package:tenday/HomeScreen.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
Widget build(BuildContext context) {
return const MaterialApp(
home: HomeScreen(),
);
}
}
// HomeScreen.dart
import 'package:flutter/material.dart';
import 'ItemTile.dart';
class HomeScreen extends StatelessWidget {
const HomeScreen({super.key});
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: const [
ItmeTile(
icon: Icons.sunny,
name: "Sun",
),
ItmeTile(
icon: Icons.nightlight_round,
name: "Moon",
),
ItmeTile(
icon: Icons.star,
name: "Star",
),
],
),
),
),
);
}
}
// ItemTile.dart
import 'package:flutter/material.dart';
class ItmeTile extends StatefulWidget {
const ItmeTile({
super.key,
required this.icon,
required this.name,
});
final IconData icon;
final String name;
State<ItmeTile> createState() => _ItmeTileState();
}
class _ItmeTileState extends State<ItmeTile> {
bool switching = false;
Widget build(BuildContext context) {
return ListTile(
leading: Icon(
widget.icon,
color: switching ? Colors.yellow : Colors.grey,
),
title: Text(
widget.name,
style: const TextStyle(
color: Colors.black,
fontSize: 20,
),
),
trailing: const Icon(
Icons.arrow_right,
size: 30,
),
onTap: () {
switching = !switching;
print(switching);
setState(() {});
},
);
}
}
// HomeScreen.dart
import 'package:flutter/material.dart';
import 'ItemTile.dart';
class HomeScreen extends StatefulWidget {
const HomeScreen({super.key});
State<HomeScreen> createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
final TextEditingController _textEditingController = TextEditingController();
String content = "";
String text = "";
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
ItmeTile(
icon: Icons.sunny,
name: "Sun",
textBool: content == "태양",
text: text == "태양",
),
ItmeTile(
icon: Icons.nightlight_round,
name: "Moon",
textBool: content == "달",
text: text == "달",
),
ItmeTile(
icon: Icons.star,
name: "Star",
textBool: content == "별",
text: text == "별",
),
TextField(
controller: _textEditingController,
onSubmitted: (value) {
content = value;
if (text.isEmpty) {
text = _textEditingController.text;
} else {
text = "";
}
setState(() {});
},
decoration: const InputDecoration(
border: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.grey,
),
),
),
),
],
),
),
),
);
}
}
// ItemTile.dart
import 'package:flutter/material.dart';
class ItmeTile extends StatefulWidget {
const ItmeTile({
super.key,
required this.icon,
required this.name,
required this.textBool,
required this.text,
});
final IconData icon;
final String name;
final bool textBool;
final bool text;
State<ItmeTile> createState() => _ItmeTileState();
}
class _ItmeTileState extends State<ItmeTile> {
bool switching = false;
Widget build(BuildContext context) {
return ListTile(
leading: Icon(widget.icon,
color: widget.textBool
? widget.text
? Colors.yellow
: Colors.grey
: switching
? Colors.yellow
: Colors.grey),
title: Text(
widget.name,
style: const TextStyle(
color: Colors.black,
fontSize: 20,
),
),
trailing: const Icon(
Icons.arrow_right,
size: 30,
),
onTap: () {
switching = !switching;
setState(() {});
},
);
}
}