조건식 : If - else 표현식
- Rust에서
if는 표현식이기 때문에 변수의 값으로 할당할 수 있음
- 그러나
if와 else 블록이 반환하는 값이 다르면 컴파일에러 발생
fn main () {
let x = 3;
let y = 4;
// Rust에서 if는 표현식이기 때문에 변수 값을 할당하는 데 사용할 수 있음
let first_flag = if (x > y) { true } else { false };
// if/else 블록이 반환하는 값이 서로다르면 컴파일 에러 발생
let second_flag = if (x > y) { x } else { "y is small than x"};
}
반복문 : loop, while, for
loop
- 조건이 참일 때 까지 반복 실행
- 일반적으로 무한 루프를 만들 때 사용
braek 키워드
- 특정 조건을 만족할 때
break 을 사용하여 반복 종료
break 뒤에 표현식을 사용함으로써 루프문에서 값을 반환할 수 있음
- 루프 라벨
'label_name : loop { ... }
break, continue 와 함께 사용할 때, 이 키워드 바로 바깥쪽 루프로 나가는 대신 루프 라벨에 적힌 루프에 적용되도록 할 수 있음
- 라벨 이름은 반드시 작은 따옴표로 시작해야 함
fn main () {
// 1. 반복문에서 값 반환하기
let mut counter = 0;
let result = loop {
counter += 1;
// 매 반복마다 counter가 10인지 검사, 참이면 반복 종료
if counter == 10 {
break counter * 2;
}
};
println!("result : {result}\n");
// 2. 루프 라벨로 여러 반복문 사이에서 모호함 없애기
let mut count = 0;
'counting_up : loop {
println!("count : {count}");
let mut remaining = 10;
loop {
println!("remaining : {remaining}");
if remaining == 8 {
break;
}
if count == 2 {
break 'counting_up; // 현재 루프가 아닌 라벨 이름의 루프에서 탈출
}
remaining -= 1;
};
count += 1;
};
println!("End count : {count}");
}
## 출력 결과 ##
result : 20
count : 0
remaining : 10
remaining : 9
remaining : 8
count : 1
remaining : 10
remaining : 9
remaining : 8
count : 2
remaining : 10
End count : 2
while
- 조건식이
true인 동안 반복
- 조건식이
false이면 자동으로 반복 종료
- 즉
while문은 loop, if-else, break 의 조합
fn main() {
let mut number = 3;
while number != 0 {
println!("number : {number}");
number -= 1;
}
}
number : 3
number : 2
number : 1
for
fn main() {
let arr = [1, 3, 5, 7, 9];
for element in arr {
println!("element : {element}");
}
}
element : 1
element : 3
element : 5
element : 7
element : 9