
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 {
	count += 1;
    
    if count == 5 {
        continue;
    }  
    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
'개발 > 러스트 (Rust)' 카테고리의 다른 글
| Rust 기본, 참조 (Borrow) (0) | 2024.07.09 | 
|---|---|
| Rust 기본, 소유권 (Ownership) (0) | 2024.07.06 | 
| Rust 기본, OBRM vs RAII (0) | 2024.07.06 | 
| Rust 기본, 주석 Comment. (1) | 2024.07.06 | 
| Rust 기본, 함수 (Functions) (0) | 2024.07.06 | 
| Rust 기본, 상수와 정적 변수 (Constants, Statics) 비교. (0) | 2024.07.06 | 
| Rust 기본, 데이타 타입 (Scalar, Compound, Unit) (0) | 2024.05.27 | 
| 주요 RUST 학습 자료. (1) | 2024.05.23 |