无限循环中的返回和中断有什么区别?

时间:2015-03-24 06:19:40

标签: return rust infinite-loop break

在使用Rust Book进行猜测游戏时(我不会因为它可能在几周内不存在而放置链接),您可以使用return来突破loop。我改为使用break

loop {
    guess = guesser();
    guess_cast = guess.trim().parse();

    let guess_num = match guess_cast {
        Ok(num) => num,
        Err(_) => {
            println!("Guess was not a number, try again");
            continue;
        },
    };

    if guess_num < answer {
        println!("Too low");
    } else if guess_num > answer {
        println!("Too high");
    } else {
        println!("You guessed it!");
        break;
    }
}

在这种情况下使用return优于break是否真的有区别?当你想要摆脱无限循环时,其他情况呢?

1 个答案:

答案 0 :(得分:3)

如果循环是函数中的最后一个语句,那么break;return;之间显然没有功能区别。如果这个条件不成立,显然存在差异,因为return终止执行函数,而break只终止执行循环

如果它们在功能上相同,您使用的可能会因环境(在这个特定位置感觉更好),个人偏好以及您吃早餐的情况而有所不同。