본문 바로가기
Language/Rust

함수와 제어문

by y.j 2021. 10. 6.
728x90

조건문

특별하게 다른건 없다

fn main () {
    let dead = false;
    let health = 48;

    if dead {
        println!("Game Over!");
        return;
    }

    if dead {
        println!("Game Over!");
        return;
    }
    else {
        println!("You still have a chance to win!");
    }

    if health >= 50 {
        println!("Continue to fight!");
    }
    else if health >= 20 {
        println!("Stop the battle and gain strength");
    }
    else {
        println!("Hide and try ro recover!");
    }
}

cpp와는 다르게 코드 블록으로 변수 값을 할당 할 수 있다.

let active = {
        if health >= 50 {
            true
        }
        else {
            false
        }
    };

println!("Am I active? {}", active);

반복

while문

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

loop문

  • loop문은 outer inner로 구분 할 수 있어 break시 outer, inner 중 어떤 걸 끝낼지 알 수 있다.
loop {
     power += 1;
     if power == 42 {
         continue;
    }
      print!("{} ", power);
     if power == 50 {
        print!("OK, that's enough for today");
        break;
     }
}

'outer: loop {
    println!("Entered the outer dungheon - ");
    'inner: loop {
        println!("Entered the inner dungheon - ");
        break 'outer;
    }

    println!("This treasure can sadly never be reached - ");    // 출력이 안됨
}

for문

    for n in 1..11 {
        println!("The square of {} is {}", n, n*n);
    }

    let mut x = 10;

    for _ in 1..x { x -= 1; print!(" .")}

함수

유의할 점은 return값에는 세미콜론(;)이 없어야 한다.



fn main () {
    let hero1 = "Pac Man";
    let hero2 = "Riddick";
    greet(hero1);
    greet(hero2);
    let power = increment_power(1);
    println!("My power level is now: {}", power);
}

fn greet(name: &str) {
    println!("Hi, mighty {}, what brings you here?", name);
}

fn greet_both(name1: &str, name2: &str) {
    greet(name1);
    greet(name2);
}

fn increment_power(power: i32) -> i32 {
    println!("My Power is going to increase");
    power+1
}
728x90

'Language > Rust' 카테고리의 다른 글

고차원 함수와 매개변수화를 통한 코드 일반화  (0) 2021.10.09
패턴매칭  (0) 2021.10.08
데이터 구조화  (0) 2021.10.06
변수  (0) 2021.10.04
Rust의 장점 및 특징  (0) 2021.10.04

댓글