본문 바로가기

개발(합니다)/Flutter&android&ios

[flutter-14] 반복문 - For loop

반응형

반복해서 같은 행위를 하도록 합니다.

  1. for loop
    • 기본 형태 : C 언어에서 온 형태
    for (int i = 0; i < 6; i++) {
        print('$i 번째 실행');
    }

  1. 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);
  }
  1. foreach loop
    • for in loop와 동일하지만 foreach가 성능이 좀 더 좋다고 봄
  rainbow.forEach((element) {print(element);});
  1. 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);

}
  1. 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);
}
  1. 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(..) 점 두개로 표현하며 한 객체의 멤버 함수에 호출하거나 속성에 접근할 수 있습니다.

반응형