Rust中通过用户输入退出循环的方法及计算器循环失效问题
Rust计算器循环退出问题的解决方法
你的代码没法正常退出循环,主要是这几个问题导致的,直接给你解决方法:
main函数定义错误:原代码里
fn main {少了括号,Rust要求函数定义必须带括号,正确写法是fn main() {。输入字符串包含换行符:
read_line会把用户输入的回车键(换行符\n)也存入字符串,所以输入n回车后,answer实际是"n\n",和"n"不相等,判断自然不触发。解决办法是用trim()方法去掉字符串两端的空白字符(包括换行符、空格),把判断改成if answer.trim() == "n"。缺少io模块导入:直接用
io::stdin()会编译报错,需要在文件开头加上use std::io;,或者写成std::io::stdin()。未定义的result变量:代码里
println!("result: {}", result);中的result没有定义,得在计算器逻辑部分补充这个变量的赋值,不然编译通不过。
修正后的完整代码示例:
use std::io; fn main() { loop { // 替换成你的计算器计算逻辑,这里用示例值占位 let result = 0; println!("result: {}", result); println!("do you want to do another operation(y/n)? "); let mut answer = String::new(); io::stdin().read_line(&mut answer).expect("failed to read line"); if answer.trim() == "n" { println!("ok, goodbye!"); break; } } }
内容的提问来源于stack exchange,提问作者alvinn011
相关产品推荐
相关产品推荐

