Flutter

[Dart][반복문<for문>] AOS 개발자가 공부하는 Dart 언어 기초 6

독고냥이 2023. 7. 10. 14:27

[이전 글]

2023.07.07 - [Flutter] - [Dart][산술 연산자] AOS 개발자가 공부하는 Dart 언어 기초 5

 

[Dart][산술 연산자] AOS 개발자가 공부하는 Dart 언어 기초 5

산술 연산자란? 산술 연산자란 특정 값을 더하고 빼고 나누고 곱하고 하는 등의 계산을 할 수 있게 해주는 역할을 수행한다. 다트 언어도 다른 언어와 유사한 연산자를 지원한다. 산술 연산자 종

tokkoutai.tistory.com

 

 

 

 

  • 반복문 이란?
철수네 반에 학생부를 보니 비슷한 이름들이 있다. 

비슷한 이름들 = [진우, 민우, 성우, 광우, 제우, 초우, 보우]

해당 이름들을 한 번에 출력해 보고자 할 때 반복문을 사용하여 출력이 가능하다.  반복문은 연속된 값들을 저장하고 있는 배열이나 리스트 등의 자료형의 데이터들을 쉽게 접근 가능하게 한다. 

다트언어는 일반적인 다른 언어 들과 동일하거나 유사한 반복문들을 지원한다.  

 


 

  • For 문 이란? 
    • 가장 기본이 되는 반복문이다. for( 시작; 종료; 증감연산자)
    • for (int i = 0 ; 은 i 라는 변수를 선언하여 반복문의 인덱스로 사용 한다 
    • 비슷한 이름들을 배열에 저장하고 0부터 배열의 끝까지 루프를 돌며 출력을 할 수 있고, 모든 작업이 완료되면 루프가 종료된다. 
    • 세미콜론을 기준으로 int  i = 0 은 루프의 시작을 뜻하고, i < similarNames.length  는 루프의 종료 시점을 그리고 i++ 은 1씩 반복하여 더하는 것을 뜻한다. 

 

  • For 문 예시

 

void main() {
  var similarNames = ['진우', '민우', '성우', '광우', '제우', '초우', '보우'];

  //1. 인덱스 i를 선언하고 0으로 초기화
  //2. similarNames의 크기를 반복문의 종료 시점으로 지정
  //3. 증감연산자 i++를 사용하여 1씩 증가
  //4. for문이 시작 되고 similarNames의 length 만큼 for문이 반복하여 print를 실행한다. 
  for (int i = 0; i < similarNames.length; i++) {
    print(similarNames[i]);
  }
}
/**
 결과 -
 진우
 민우
 성우
 광우
 제우
 초우
 보우
 **/

 


 

  • For-in 문 이란?
    • 기본 For문은 similarNames[i] 와 같이 for문의 인덱스로 배열의 특정 값에 접근하여 데이터를 출력한다. 
      • print(similarNames[i]});  i 가 인덱스 번호이다. 
    • For-in 문은 인덱스 번호를 기준으로 반복문을 접근하는 방식이 아닌 similarNames 변수 자체를 할당받는다. 
    • 자바에서는 확장 for문 또는 향상된 for문이라 한다.

 

  • For-in 문 예시

 

//For-in 문
void main() {
  var similarNames = ['진우', '민우', '성우', '광우', '제우', '초우', '보우'];

  // in 연산자로 similarnames를 바로 할당
  // 루프가 돌때 마다 similarName의 값이 바뀐다.
  for (String similarName in similarNames) {
    print(similarName);
  }
}
/**
 결과 -
 진우
 민우
 성우
 광우
 제우
 초우
 보우
 **/

 


 

 

  • ForEach 문 이란? 
    • 지금까지 반복문은 외부 루프를 통해 반복을 표현하고 수행하였다.
    • forEach 문은 내부 루프를 통해 반복을 수행한다. 
    • 배열의 forEach 함수를 통해 내부 루프에 접근 가능하며 익명 함수, 람다식 등이 있다. 

 

  • ForEach 문 예시
//For each 문
void main() {
  var similarNames = ['진우', '민우', '성우', '광우', '제우', '초우', '보우'];

  //[1] 배열의 forEach 함수를 통해 내부 루프로 출력
  similarNames.forEach(print);
  
  print('------');

  //[2] 익명 함수로 접근하여 출력
  similarNames.forEach((e) {
    print(e);
  });
  
  print('------');

  //[3] 람다식으로 접근하여 출력
  similarNames.forEach((e) => print(e));
}
/**
 결과 -
  진우
  민우
  성우
  광우
  제우
  초우
  보우
  ------
  진우
  민우
  성우
  광우
  제우
  초우
  보우
  ------
  진우
  민우
  성우
  광우
  제우
  초우
  보우
 **/

 


 

  • continue 란?
    • 반복문에서 특정 시점에 현재 루프를 건너뛰고 다음으로 넘어가야 할 때가 있다. 

 

철수네 반의 학생부를 통해 알게 된 비슷한 사람들의 명단 중 제우를 뺀 나머지만 출력해 보자 
//continue
void main() {
  var similarNames = ['진우', '민우', '성우', '광우', '제우', '초우', '보우'];

  for (int i = 0; i < similarNames.length; i++) {
    //현재 값이 제우일 경우 현재 루프를 바로 종료 하고 다음 루프로 시작 
    //i = 0, 1, 2, 3번 까지 진행 되고, 4번일 때 제우이므로 continue를 통해 루프를 바로 빠져 나와 5, 6 순으로 진행된다.
    if(similarNames[i] == '제우')
      continue;
    
    //i == 4번 일 때 continue를 통해 루프가 다음으로 넘어갔으므로 제우를 출력하지 않는다.
    print(similarNames[i]);
  }
}
/**
  결과 - 
  
  진우
  민우
  성우
  광우
  초우
  보우
 **/

 


 

  • break 란?
    • 반복문에서 특정 값일 경우 루프를 종료해야 할 때가 있다.
철수네 반의 학생부를 통해 알게 된  비슷한 사람들의 명단 중 제우 이전 사람들만 출력해 보자.
//break
void main() {
  var similarNames = ['진우', '민우', '성우', '광우', '제우', '초우', '보우'];

  for (int i = 0; i < similarNames.length; i++) {
   
    //i = 0, 1, 2, 3번 까지 진행 되고, 4번일 때 제우이므로 break를 통해 루프가 종료 된다.
    if(similarNames[i] == '제우')
      break;
    
    //i == 4번 일 때 break 통해 루프가 종료 되므로 제우 이전 사람들만 출력 한다.
    print(similarNames[i]);
  }
}
/**
  결과 - 
  
  진우
  민우
  성우
  광우
 **/

 

 

 

 

[다음 글]

2023.07.11 - [Flutter] - [Dart][반복문<while문>] AOS 개발자가 공부하는 Dart 언어 기초 7

 

[Dart][반복문<while문>] AOS 개발자가 공부하는 Dart 언어 기초 7

[이전 글] 2023.07.10 - [Flutter] - [Dart][반복문 ] AOS 개발자가 공부하는 Dart 언어 기초 6 [Dart][반복문] AOS 개발자가 공부하는 Dart 언어 기초 6 반복문 이란? 철수네 반에 학생부를 보니 비슷한 이름들이

tokkoutai.tistory.com