본문 바로가기

Rust

Rust, If 문 및 loop문, control flow (제어문)

반응형

if statement

 

제어문, if-else 류는 문들은 보통 모든 언어들에 있는 구문이고, 

여기서는 rust가 다른 언어들과 조금 다른 점들만 기술한다. 

 

if [conditions]  ...  condition은 boolean식만 들어갈 수 있다. 

 

"? : " 와 같은 삼항 연산자 역시 제대로 동작한다, 

특이한 점은 condition에 괄호() 가 필요 없다는점.

if condition {
  ...
} 
else {
  ...
}

 

 

Conditional loop(while)

while같은 conditional loop도 동일하다, 조건이 만족하면 loop가 실행되고,

아니면 빠져나가는것, 

 

let mut i = 1; 
while i <=10 {
  print!("{}, ",i);
  i +=1;
}

 

Infinite loops(loop) - 무한루프 

 

loop-> while true  로 치환된다 일종의 syntax sugar

 

fn main() {    
    let mut hp=1; 
    loop {  
        hp += 1;  
        if hp == 32 {
            // back to top    
            continue;  
        }  
        print!("{}  ", hp);  
        if hp == 40 {    
            print!("OK, exit ");    
            break;  // exit loop
        }
    } 
}

// 2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25 
// 26  27  28  29  30  31  33  34  35  36  37  38  39  40  OK, exit

위와 같은 구문을 보면, 숫자가 증가하다가 32에서 skip하였고, 40에서 loop를 벗어난 것을 확인할 수 있다. 

 

For statement - Counting loop

 

아래 구문은 1에서 9까지,  python의 range함수와 비슷한 형태이다. 

for i in 1..10{
  print!("{} ", i);
}

그리고 특이한 점이 하나 있는데, for문에 인가되는 변수들(start, end, step)의 값들은, 

for문 진입하기 전의 값을 가지고, loop안에서는 start, end, step의 값은 영향을 받지 않는다. . 

 

 

 

반응형

'Rust' 카테고리의 다른 글

[Rust] 벡터 (Vector)  (0) 2022.10.03
[Rust] 타입 추론 (Type Inference)  (0) 2022.09.16
Rust, 튜플  (0) 2020.01.20
Rust, 자료형 Numeric(정수)  (0) 2020.01.14
Rust , VSCode 환경 설정  (0) 2019.12.30