티스토리 뷰

Programming Language/Rust

[Rust] 흐름 제어

SdardewValley 2021. 2. 22. 03:49
반응형

⚡️if

조건에 따라 분기할 때 사용한다.

if문 예제

러스트의 if 문의 조건문은 반드시 boolean 타입을 리턴해야 한다.

if, else if, else를 사용한 조건문
let 구문에서 if 표현식 사용하기

if는 표현식 이므로 let 구문 오른쪽에 사용할 수 있다. 이렇게 사용할 때 각  가지가 리턴하는 결과는 모두 같은 타입이어야 한다.

다른 타입인 경우 에러 발생

이와 같이 다른 타입을 리턴한 경우 에러가 발생한다.

 

⚡️반복문

러스트는 loop, while, for 세 가지 종류의 루프를 제공한다.

 

(1) loop

loop 키워드는 루프를 중지시키는 코드가 있지 않다면 코드 블록을 무한으로 실행한다.

무한 반복하는 루프를 종료하고 싶다면 "Ctrl + c"를 사용하면 된다. 또는 루프 안에 break 키워드를 삽입하면 루프의 실행이 중단된다.

loop에서 값을 리턴

루프는 실패할 가능성이 있는 작업을 재시도하는 경우 이용한다. 작업의 결과를 사용해야 하는 경우도 있는데 루프는 중단하는 break 표현식 다음에 리턴하고자 하는 값을 추가하면 된다.

예시에서 counter가 10이 될 때까지 증가하다가 10이 되면 조건문 안에 들어가서 break를 실행한다. break 다음에 counter에 2를 곱하라고 되어 있다. 결국 loop를 마치면 result에는 20이 전달된다. 루프의 끝에 세미콜론을 추가해서 result에 값을 추가해야 한다.

 

(2) while

while문 예시 - countdown

(3) for

while문 예시

위의 방법은 인덱스가 배열의 범위를 벗어나면 에러가 발생할 위험이 있다.

for문 예시

for문을 이용해서 컬렉션 내의 요소들을 반복해서 처리할 수 있다. 위의 while문보다 for문이 코드의 안정성이 더 높고, 배열의 인덱스를 벗어나거나 일부 요소를 처리하지 못하는 버그를 방지할 수 있다.

while문의 countdown 예시의 for문 버전

while문의 countdown을 for문으로 표현한 것이다. rev() 메소드를 사용하여 범위를 뒤집어 주었다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 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
글 보관함