为了用 Rust 语言练习结构,我决定创建一个程序来打印你输入的数字的幂。该程序应该可以运行,直到您输入“stop”,但是有一个问题:当我输入“stop”时,循环不会中断并且我的程序在尝试将字符串“stop”转换为数字后崩溃。如何解决?
//Power of number
struct Number{
number_itself: i32,
power: i32,
}
fn main(){
loop{
let mut number = String::new();
let mut Power = String::new();
io::stdin().read_line(&mut number).expect("Hren kakaya-to");
io::stdin().read_line(&mut Power).expect("Huyeta");
if number==String::from("stop") || Power==String::from("stop"){
break;
}
let number_int:i32 = number.trim().parse().expect("Ne vyshlo");
let power_int:i32 = Power.trim().parse().expect("Hren' vyshla");
let powernum = Number{
number_itself:number_int,
power:power_int,
};
println!("{}",powernum.number_itself.pow(powernum.power as u32));
}
}```
您的字符串实际上并不相等,从返回的字符串最后read_line()
还包含一个换行符。您可以执行类似的操作以使其按预期工作:
struct Number {
number_itself: i32,
power: i32,
}
fn main() {
loop {
let mut number = String::new();
let mut Power = String::new();
std::io::stdin()
.read_line(&mut number)
.expect("Hren kakaya-to");
std::io::stdin().read_line(&mut Power).expect("Huyeta");
if number.trim() == "stop" || Power.trim() == "stop" {
break;
}
let number_int: i32 = number.trim().parse().expect("Ne vyshlo");
let power_int: i32 = Power.trim().parse().expect("Hren' vyshla");
let powernum = Number {
number_itself: number_int,
power: power_int,
};
println!("{}", powernum.number_itself.pow(powernum.power as u32));
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句