【问题标题】:What is the difference between a return and a break in an infinite loop?无限循环中的返回和中断有什么区别?
【发布时间】:2015-05-27 09:12:21
【问题描述】:

在从 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;
    }
}

在这种情况下使用returnbreak 有真正的区别吗?想跳出无限循环的其他情况呢?

【问题讨论】:

    标签: return rust infinite-loop break


    【解决方案1】:

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

    在功能相同的情况下,您使用的方式可能会因环境(在此特定位置感觉更好)、个人喜好以及您早餐吃了什么(如果有的话)而有所不同。

    【讨论】:

    • 我期待一篇详尽的博文,将早餐选择以及它们如何映射到return / break
    • @Chris Morgan,简洁明了。已经是深夜了,所以直到今天才吃早餐,之后我决定使用return,因为这是程序中的最后一个循环,应该在之后结束执行。
    猜你喜欢
    • 2011-04-01
    • 2014-10-19
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 2020-11-01
    • 2011-12-24
    • 1970-01-01
    相关资源
    最近更新 更多