为什么当我输入“停止”时循环没有中断

亚历山德拉乌克兰

为了用 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么当我输入 stop 时我的 while 循环没有停止?

当我单击停止时,为什么这个Tkinter的“之后”循环没有停止?

C ++:当我使用Ctrl + d结束输入循环时,为什么我的最后一个输入没有被拾取?

为什么当我<0时,我的while循环没有终止?

当我不输入数字时为什么会有无限循环?

为什么当我输入这个 powershell 代码时它没有被执行?

当我从atexit处理程序调用exit时,为什么没有得到无限循环?

为什么我的while循环没有停止?

当我输入新的患者信息时,为什么我的主条目中的计数没有更新?

当我的输入变量超过 1 个字符时,为什么我没有得到任何结果?

当我在 forEach 循环中重新分配属性时,为什么我的对象没有改变?

为什么没有输入我的C#for循环?

为什么我的 while 循环在它应该中断的时候没有中断

当我在foreach和for循环中放入变量时,为什么我的脚本停止运行

当我在Mac终端中输入`route -n`时,为什么它没有显示路由表?

当我输入一段代码时,为什么下拉菜单中没有显示文本

为什么会出现错误:超出最大更新深度。当我没有无限循环时?

为什么for循环没有停止?

为什么中断顺序不能停止我的代码中的循环?

为什么当我在ViewPager中点击editText时,softKeyboard为什么没有打开?

为什么当我引用未用“ @ + id”标记的ID时,为什么没有出现错误?

为什么我的循环仅在我输入 false 2 次时才停止执行?

我想知道为什么我的程序没有在我的 while 循环中停止

为什么我的 for 循环实际上没有循环?我没有中断功能,并希望它循环但它没有

当我在for循环中复制变量时,为什么我的JavaScript代码有效?

为什么当我尝试通过 for 循环修改数组时数组没有改变

当满足条件时循环没有中断,我在做什么错呢?

当我使用ng-options时为什么我选择的没有价值

当我使用非测试 ID 时,为什么我的 AdMob 广告没有展示?