ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Day 4: 기본 제어문 (if, loop, while, for)
    RUST 20일 과정 2025. 1. 6. 13:39
    Day 4: 기본 제어문

    Day 4: 기본 제어문 (if, loop, while, for)

    1. 수업 개요

    • 주제: Rust에서의 if 문, 다양한 루프(loop, while, for) 문법과 사용법
    • 학습 목표:
      • Rust의 if-else 구문을 작성하고, 표현식으로도 활용할 수 있음을 이해한다.
      • loop, while, for 문을 이용한 반복 처리를 학습한다.
      • C 언어 대비 Rust에서 달라진 점(예: break, continue 키워드, label)이 무엇인지 파악한다.

    2. 이론

    if, else if, else

    • 기본 구조:
    • if 조건식 {
          // 참일 때 실행
      } else if 다른조건 {
          // 위 조건이 거짓, 이 조건이 참일 때 실행
      } else {
          // 모든 조건이 거짓일 때 실행
      }
    • 조건식은 반드시 bool 타입이어야 함
    • if 를 표현식으로 활용하기:
    • let condition = true;
      let number = if condition { 5 } else { 10 };
      println!("number의 값: {}", number);

    loop

    • 무한 루프:
    • loop {
          println!("계속 반복합니다...");
          break;
      }
    • loop 표현식: break 뒤에 값을 넘길 수 있음
    • let mut counter = 0;
      let result = loop {
          counter += 1;
          if counter == 5 {
              break counter * 2;
          }
      };
      println!("result = {}", result);

    while

    • 기본 구조:
    • let mut n = 3;
      while n > 0 {
          println!("{}", n);
          n -= 1;
      }
      println!("발사!");

    for

    • 기본 구조:
    • let arr = [10, 20, 30, 40, 50];
      for element in arr {
          println!("값: {}", element);
      }
    • 범위(Range)를 사용한 반복:
    • for i in 1..4 {
          println!("i = {}", i);  // 1, 2, 3
      }
      for i in 1..=4 {
          println!("i = {}", i); // 1, 2, 3, 4
      }
    • 역방향 반복:
    • for num in (1..4).rev() {
          println!("역방향: {}", num); // 3, 2, 1
      }

    break, continue, 라벨(Label)

    • break: 루프 탈출
    • continue: 다음 반복으로 건너뛰기
    • 라벨 사용:
    • 'outer: for i in 1..=5 {
          for j in 1..=5 {
              if i + j == 5 {
                  break 'outer;
              }
          }
      }

    3. 실습

    조건문 실습

    • 사용자 입력(또는 하드코딩된 변수)에 따라 “짝수/홀수”를 구별하는 코드를 if-else if-else로 작성
    • if 문을 표현식으로 활용해, 변수에 조건별로 다른 값을 할당해 출력해보기

    반복문 실습

    • loop 예제:
    • let mut counter = 0;
      loop {
          counter += 1;
          if counter == 5 {
              break counter * 3;
          }
      }
    • while 예제:
    • let mut sum = 0;
      let mut n = 1;
      while n <= 10 {
          sum += n;
          n += 1;
      }
      println!("합: {}", sum);
    • for 예제:
    • for i in 1..=10 {
          println!("구구단 2단: {} x 2 = {}", i, i * 2);
      }

    라벨(Label) 활용

    'outer: loop {
        let mut inner = 0;
        while inner < 5 {
            if inner == 3 {
                break 'outer;
            }
            inner += 1;
        }
    }

    4. 마무리 및 과제

    오늘 배운 내용 정리

    • if-else와 C 언어 대비 차이: 조건식은 bool이어야 함
    • Rust의 반복문: loop, while, for
    • loop의 표현식 기능(값을 반환 가능), 라벨을 통한 탈출 제어
    • 범위 표현(1..=n)이 매우 편리함

    과제(실습 문제)

    1. 1부터 10까지 순회하며, 짝수는 println!("짝수: {}", i), 홀수는 println!("홀수: {}", i) 라고 출력하는 코드를 for 문으로 작성
    2. loopwhile을 각각 사용해 1부터 10까지 합을 구하고, 결과를 비교 출력
    3. 구구단(2~9단)을 for 문을 이용해 출력하되, 2단부터 5단까지만 출력하고 싶다면, 특정 조건에서 바깥 루프까지 break를 수행해보자(라벨 사용)

    학습 팁

    • if, loop, while, for 등은 대부분 C, Java, Python 등의 문법과 유사하지만, Rust에서만의 특징(조건식의 엄격한 bool 요구, loop의 표현식 기능, 라벨)도 분명히 체득해두자.
    • 반복문 예제를 통해 Ownership & Borrowing 개념도 확인해보자.

    5. 수업 진행 예시 타임라인 (총 50분 수업 기준)

    • 10분: 이론: if, loop, while, for 문법 및 예제 설명
    • 5분: C 언어와 다른 점 및 라벨(Label) 활용 법 Q&A
    • 20분: 실습:
      • 짝/홀수 판별, 1부터 N 합, 구구단 구현 등
      • 라벨을 이용한 중첩 루프 탈출 등
    • 10분: 실습 코드 리뷰 & 버그/에러 해결
    • 5분: 과제 안내 및 마무리

    정리: Rust에서 제어문은 C 언어와 비슷하면서도 엄격한 타입 검사(조건식은 bool)와 loop 표현식, 라벨 등의 특징이 있습니다.

Designed by Tistory.