for, for in, foreach, while문
List<type>.generate
void basicLoop(){
List<String> rainbow = ['1','2','3','4','5','6'];
for(int i=0; i<rainbow.length; i++){
print(rainbow[i]);
}
for(String x in rainbow){
print(x);
}
rainbow.forEach((name){
print(name);
});
}
void main(){
basicLoop();
return;
}
[로또번호 생성기 ver_1]
아래 프로그램은 list자료형의 특성상 random으로 값을 생성할 때 중복된 값을 허용함
import 'dart:math';
List<int> lottoNmber(){
var random = Random();
List<int> lottoList = [];
var num;
for(int i=0; i<6; i++){
num = random.nextInt(45) + 1;
lottoList.add(num);
}
print('당첨번호');
print(lottoList);
return lottoList;
}
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 match = 0;
for(int lotto in lottoList){
for(int myNum in myList){
if(lotto == myNum){
match++;
print('당첨번호: $lotto');
}
//print("로또번호 = $lotto");
//print("내 추첨번호 = $myNum");
}
}
print("$match개의 당첨번호가 있습니다.");
}
void main(){
List<int>lottoFinal = lottoNmber();
List<int>myFinal = myNumber();
checkNumber(lottoFinal, myFinal);
return;
}
[로또번호 생성기 ver_2]
set을 사용해서 중복된 값 제외하기
import 'dart:math';
Set<int> lottoNmber(){
final random = Random();
final Set<int> lottoSet = {};
while(lottoSet.length != 6){
lottoSet.add(random.nextInt(45)+1);
}
print('당첨번호');
print(lottoSet.toList());
return lottoSet;
}
Set<int> myNumber(){
final random = Random();
final Set<int> mySet = {};
while(mySet.length != 6){
mySet.add(random.nextInt(45)+1);
}
print('내 추첨번호');
print(mySet.toList());
return mySet;
}
void checkNumber(lottoSet, mySet){
int match = 0;
for(int lotto in lottoSet){
for(int myNum in mySet){
if(lotto == myNum){
match++;
print('당첨번호: $lotto');
}
//print("로또번호 = $lotto");
//print("내 추첨번호 = $myNum");
}
}
print("$match개의 당첨번호가 있습니다.");
}
void main(){
Set<int>lottoFinal = lottoNmber();
Set<int>myFinal = myNumber();
checkNumber(lottoFinal, myFinal);
return;
}
리스트 제너레이터
List<int>.generate(45, (i) => i+1);
예시
void main(){
var text = List<int>.generate(45, (i) => i+1);
print(text);
}
dart언어 cascade notation
class Person{
String? name;
int? age;
void set(int x){
age = x;
}
void show(){
print(name);
print(age);
}
}
void main(){
Person p1 = Person();
p1.set(30);
p1.name = "Lee";
p1.show();
Person p2 = Person();
p2..set(20)..name = "Kim"..show();
Person p3 = Person();
p3..set(40)
..name="Park"
..show();
}
cascade 표기법을 활용해서 랜덤한 lotto 숫자 6개 뽑아내기
void main(){
var test = (List<int>.generate(45, (i) => i+1)..shuffle()).sublist(0,6);
print(test);
}
다시 로또프로그램 만들기
'플로터(Flutter) > 기본' 카테고리의 다른 글
(코딩쉐프) 조금 매운 맛 7강 (code refactoring) (0) | 2023.01.18 |
---|---|
(코딩쉐프) 조금 매운 맛 3강 ~ 5강 (로그인과 주사위앱) (0) | 2023.01.17 |
(코딩쉐프) 조금 매운 맛 2강 (버튼에 따라 증감하는 앱) (0) | 2023.01.16 |
(코딩쉐프) 조금 매운 맛 1강 (상속) (0) | 2023.01.13 |
(코딩쉐프) 순한 맛 시즌 2 - 반응형으로 만드는 유튜브(모바일,데스크톱) (0) | 2023.01.12 |