sar*_*gas 2 return break infinite-loop rust
在做《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;
}
}
Run Code Online (Sandbox Code Playgroud)
return在这种情况下使用over有真正的区别吗break?当你想跳出无限循环时,其他情况怎么办?
如果循环是函数中的最后一个语句,那么break;和之间显然没有功能区别return;。如果这个条件不成立,显然是有区别的,forreturn终止函数的执行,而 while只终止循环break的执行。
如果它们的功能相同,您使用的可能会根据环境(在这个特定位置感觉更好)、个人喜好以及您早餐吃什么(如果有的话)而有所不同。