For loop의 기본적인 형태
for(int i = 0; i < 6; i++) { print('$i번째 실행); }
ex 1. 만일 3씩 증가하게 한다면?
for(int i=0; i<10; i+=3){ print('$i번째 실행); }
i=i+3 은 i+=3과 같다!
출력값
초기값 i = 0 => 0
0 입력 => i = 0 + 3 => 3
3 입력 => i = 3 + 3 => 6
6 입력 => i = 6 + 3 => 9
종료
ex 2. 어떤 보드게임이 있고 버튼을 누르면 5칸을 전진하는 게임이 있다면??
void forward(int move){
for(int i=1; i<=move; i++){
print('$i칸 이동했습니다');
}
}
void main(){
forward(5);
}
1칸 이동했습니다.
2칸 이동했습니다.
3칸 이동했습니다.
4칸 이동했습니다.
5칸 이동했습니다.
종료
문제 1. for loop를 사용하여 무지개 색의 리스트를 순차적으로 출력하라.
void main(){ List<String> rainbow = ['빨, 주, 노, 초, 파, 남, 보']; }
답
void main(){ List<String> rainbow = ['빨,주,노,초,파,남,보']; for(i=0; i<rainbow.length; i++){ print(rainbow[i]); } }
출력
빨,주,노,초,파,남,보
기존 for loop 는 범위를 어디까지 해야할지 고민해야하기 때문에 이로 인하여 에러가 발생할 수도 있고 번거롭다.
이를 해결하기 위한 것이 for...in loop 이다.
List<String> rainbow = ['빨','주','노','초','파','남','보']; for(String x in rainbow){ print(x); }
for(리스트속성 객체명 in 리스트변수명) {
print(객체명);
}
for in loop 와 비슷하지만 for each loop 는 연산이 조금 더 빠르다는 장점이 있다.
void main(){ List<String> carMaker = ['BMW', 'BENZ', 'AUDI', 'JAGUAR']; carMaker.forEach((name){ print(name); }); }
랜덤으로 나의 번호와 추천 번호를 생성한 후에 두 개의 번호를 비교해서 어떤 번호가 일치하는지 출력하는 코드
import 'dart:math'; // Dart math 라이브러리 호출
// 당첨번호 생성
List<int> lottoNumber(){ // List 타입의 lottoNumber라는 함수 생성
var random = Random(); // random 객체 생성
List<int> lottoList = []; // 당첨번호를 담은 빈 리스트 생성
var num; //랜덤으로 생성된 번호 하나하나를 담을 num 변수 생성
for(int i=0; i<6; i++) {
num = random.nextInt(45)+1; // 랜덤함수 번호생성 0부터 시작하기 때문에 +1 해줌
lottoList.add(num); // num 변수에 할당된 Random한 숫자를 lottoList에 추가. add 메서드를 쓴다.
}
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){ // 두 개의 번호를 비교해야 하므로 인자값으로 lottoList와 myList의 리턴값을 받는다.
for(int lotto in lottoList){ // 중첩 반복문
for(int myNum in myList){
print('로또번호 = $lotto');
print('내 추첨번호 = $myNum');
}
}
}
void main(){
List<int> lottoFinal = lottoNumber();
List<int> myFinal = myNumber();
checkNumber(lottoFinal, myFinal);
}
결과
당첨번호
[3, 10, 37, 10, 39, 11]
추천번호
[5, 42, 42, 1, 3, 37]
로또번호 = 3
내 추첨번호 = 5
로또번호 = 3
내 추첨번호 = 42
로또번호 = 3
내 추첨번호 = 42
로또번호 = 3
내 추첨번호 = 1
로또번호 = 3
내 추첨번호 = 3
로또번호 = 3
내 추첨번호 = 37
로또번호 = 10
내 추첨번호 = 5
로또번호 = 10
내 추첨번호 = 42
로또번호 = 10
내 추첨번호 = 42
로또번호 = 10
내 추첨번호 = 1
로또번호 = 10
내 추첨번호 = 3
로또번호 = 10
내 추첨번호 = 37
로또번호 = 37
내 추첨번호 = 5
로또번호 = 37
내 추첨번호 = 42
로또번호 = 37
내 추첨번호 = 42
로또번호 = 37
내 추첨번호 = 1
로또번호 = 37
내 추첨번호 = 3
로또번호 = 37
내 추첨번호 = 37
로또번호 = 10
내 추첨번호 = 5
로또번호 = 10
내 추첨번호 = 42
로또번호 = 10
내 추첨번호 = 42
로또번호 = 10
내 추첨번호 = 1
로또번호 = 10
내 추첨번호 = 3
로또번호 = 10
내 추첨번호 = 37
로또번호 = 39
내 추첨번호 = 5
로또번호 = 39
내 추첨번호 = 42
로또번호 = 39
내 추첨번호 = 42
로또번호 = 39
내 추첨번호 = 1
로또번호 = 39
내 추첨번호 = 3
로또번호 = 39
내 추첨번호 = 37
로또번호 = 11
내 추첨번호 = 5
로또번호 = 11
내 추첨번호 = 42
로또번호 = 11
내 추첨번호 = 42
로또번호 = 11
내 추첨번호 = 1
로또번호 = 11
내 추첨번호 = 3
로또번호 = 11
내 추첨번호 = 37
보는 것과 같이 직관적이지 못하고 복잡하다. 추천번호 매칭 비교를 위해 코드수정.
void checkNumber(lottoList, myList){ int match = 0; for(int lotto in lottoList){ for(int myNum in myList){ if(lotto == myNum){ match++; } } print('$match개의 당첨번호가 있습니다!'); }
결과
당첨번호
[28, 43, 18, 17, 15, 27]
추천번호
[12, 45, 17, 26, 10, 18]
2개의 당첨번호가 있습니다.