반응형
반복해서 같은 행위를 하도록 합니다.
- for loop
- 기본 형태 : C 언어에서 온 형태
for (int i = 0; i < 6; i++) {
print('$i 번째 실행');
}
- for in loop
- 리스트에 담긴 데이터를 순차적으로 출력하는 방식
List<String> rainbow = ['빨', '주', '노', '초', '파', '남', '보'];
for(int i = 0; i < rainbow.length; i++ ){
print('$i' + rainbow[i]);
}
print('===========');
for(String s in rainbow) {
print(s);
}
- foreach loop
- for in loop와 동일하지만 foreach가 성능이 좀 더 좋다고 봄
rainbow.forEach((element) {print(element);});
- for loop, for in loop / 로또 프로그램
- 중복을 허용하는 간단한 로또 프로그램
import 'dart:math';
List<int> lottoNumber() {
var random = Random();
List<int> list = [];
var num;
for (int i = 0; i < 6; i++) {
num = random.nextInt(45) + 1;
list.add(num);
}
print('당첨번호');
print(list);
return list;
}
List<int> myNumber() {
var random = Random();
List<int> myList = [];
var num;
for (int i = 0; i < 6; i++) {
num = random.nextInt(45) + 1;
myList.add(num);
}
print('내 추첨 번호');
print(myList);
return myList;
}
void checkNumber(lottoList, myList) {
int count = 0;
for(int i in lottoList) {
for(int j in myList) {
if(i == j) {
count++;
print('일치하는 번호 $j');
}
}
}
print("맞은 갯수 : $count");
}
main() {
List<int> lottoList = lottoNumber();
List<int> myList = myNumber();
checkNumber(lottoList, myList);
}
- set, while loop / 로또 프로그램
- 중복을 허용하지 않는 로또 프로그램
import 'dart:math';
Set<int> lottoNumber() {
var random = Random();
Set<int> list = {};
var num;
for (int i = 0; list.length < 6; i++) {
num = random.nextInt(45) + 1;
list.add(num);
}
print('당첨번호');
print(list.toList());
return list;
}
Set<int> myNumber() {
final random = Random();
final Set<int> myList = {};
// var num;
// for (int i = 0; i < 6; i++) {
// num = random.nextInt(45) + 1;
// myList.add(num);
// }
while (myList.length != 6) {
myList.add(random.nextInt(45) + 1);
}
print('내 추첨 번호');
print(myList.toList());
return myList;
}
void checkNumber(lottoList, myList) {
int count = 0;
for (int i in lottoList) {
for (int j in myList) {
if (i == j) {
count++;
print('일치하는 번호 $j');
}
}
}
print("맞은 갯수 : $count");
}
main() {
Set<int> lottoList = lottoNumber();
Set<int> myList = myNumber();
checkNumber(lottoList, myList);
}
- list.generate / 로또 프로그램
- 더미 데이터를 생성하는 기능
- List.generate(10, (i) => i + 1); : 10은 리스트의 크기이며 (i)는 숫자를 생성하는 규칙을 정의합니다.
- shuffle 함수는 리스트를 섞어주는 기능을 기본적으로 제공합니다.
- sublist 함수는 원하는 사이의 값을 가져오는 기능을 기본적으로 제공합니다.
main() {
var test = List<int>.generate(45, (index) => index + 1)..shuffle();
print(test.sublist(0,6));
}
cascade notation(..) 점 두개로 표현하며 한 객체의 멤버 함수에 호출하거나 속성에 접근할 수 있습니다.
반응형
'개발(합니다) > Flutter&android&ios' 카테고리의 다른 글
[flutter-16] 날씨 앱 만들기 (0) | 2021.03.09 |
---|---|
[flutter-15] Future-async 심화 (0) | 2021.03.08 |
[flutter-13] 로그인과 주사위 놀이 만들기(위젯 리팩토링, future, async, await) (0) | 2021.03.05 |
[flutter-12] Stateful widget (1) | 2021.03.04 |
[flutter-11] Collection과 Generic (0) | 2021.03.03 |