본문 바로가기
개발/러스트 (Rust)

Rust 기본, 제어 흐름 Control Flow. (if else, loop, while, for)

by 레조 2024. 7. 6.

https://rustacean.net/

 

Rust 기본 : 제어 흐름 Control Flow. (if else, loop, while, for)

 

if ~ else if ~ else

if 문은 조건을 평가하여 true 일 때만 코드 블록을 실행합니다.

else if 문을 사용하여 여러 조건을 체크할 수 있습니다.

else 브랜치는 모든 조건 체크가 실패했을 때 실행하는 코드 블록을 지정합니다.

let a = 5;

if a > 5 {
    println!("a는 5 보다 크다.");
} else if a > 3 {
    println!("a는 3 보다 크다.");
} else { // a <= 3
    println!("a는 3 보다 작거나 같다.");
}

let b = if a > 5 { 1 } else { -1 };

 

loop

조건 없이 무한 반복하는 루프를 생성합니다.

break : 루프 탈출.

continue : 다음 반복으로 넘어감.

break value : 값 리턴.

break 'label : 레이블이 붙은 전체 루프를 탈출.

// 루프 탈출.
loop {
    println!("loop forever");
    break;
}

// 레이블 루프 전체 탈출.
'outer: loop {
    println!("loop forever");
    loop {
        break 'outer;
    }
}

// 루프 결과 리턴.
let x = loop {
    break 5;
};
println!("loop returned: {x}");

// 다음 반복으로 넘어감.
let mut count = 0;
loop {
    if count == 5 {
        continue;
    }

    count += 1;         

    if count == 10 {
        break;
    }
}

 

while

조건이 참인 동안 루프 실행합니다.

let mut a = 0;
while a < 5 {
    println!("a is {a}");
    a = a + 1;
}

 

for ~ in

컬렉션의 각 요소에 대해 반복 실행할 때 사용합니다.

let a = [1, 2, 3, 4, 5];

for element in a {
    println!("{}", element);
}

 


 

CODE

fn main() {
    // if/else
    let a = 5;

    if a > 5 {
        println!("bigger than 5");
    } else if a > 3 {
        println!("bigger than 3");
    } else {
        println!("smaller or equal to 3");
    }

    let b = if a > 5 { 1 } else { -1 };

    /* -------------------------------------------------------------------------- */

    // loop : 루프 탈출
    loop {
        println!("loop forever");
        break;
    }

    // break label : 레이블 루프 전체 탈출.
    'outer: loop {
        println!("loop forever");
        loop {
            break 'outer;
        }
    }

    // break returnValue 루프 결과 리턴.
    let x = loop {
        break 5;
    };
    println!("loop returned: {x}");

    // loop continue 다음 반복으로 넘어감.
    let mut count = 0;
    loop {
        if count == 5 {
            continue;
        }
        
        count += 1;         
        
        if count == 10 {
            break;
        }
    }
    println!("loop continue: {count}");    

    /* -------------------------------------------------------------------------- */

    // while
    let mut a = 0;
    while a < 5 {
        println!("while a is {a}");
        a = a + 1;
    }

    /* -------------------------------------------------------------------------- */

    // for ~ in
    let a = [1, 2, 3, 4, 5];

    for element in a {
        println!("for element is {}", element);
    }
}

 

 

RUN

bigger than 3
loop break
loop break label
loop returned: 5
loop continue: 10
while a is 0
while a is 1
while a is 2
while a is 3
while a is 4
for element is 1
for element is 2
for element is 3
for element is 4
for element is 5