You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#石头剪刀布游戏:不用while实现命名界面循环逻辑求助

石头剪刀布游戏:实现名字选择的重复流程(C#新手向)

对于你的需求,最适合的是do-while循环——它会先执行一遍名字输入的逻辑,再根据你的确认选择决定是否重复,完全匹配“先输入名字,不满意就重来”的场景,比普通while更直观,新手也容易上手。

完整代码示例(带注释)

string playerName = "";
// 标记名字是否确认
bool isNameConfirmed = false;

// do-while:先执行循环体,再判断是否重复
do
{
    // 1. 让用户输入名字
    Console.WriteLine("请输入你的名字:");
    playerName = Console.ReadLine();

    // 2. 确认名字
    Console.WriteLine($"你输入的名字是:{playerName},是否确认?(y/n)");
    string confirmChoice = Console.ReadLine().ToLower();

    // 3. 根据用户选择处理
    if (confirmChoice == "y")
    {
        isNameConfirmed = true;
        Console.WriteLine($"欢迎你,{playerName}!马上开始游戏~");
    }
    else if (confirmChoice == "n")
    {
        Console.WriteLine("好的,重新输入吧!");
        // 什么都不用做,循环会自动回到开头
    }
    else
    {
        Console.WriteLine("输入不对哦,请输入y或者n!");
    }
} while (!isNameConfirmed); // 只要名字没确认,就重复循环

// 接下来写你的石头剪刀布游戏逻辑
Console.WriteLine("石头剪刀布游戏开始!");
// ... 这里放游戏代码

另一种方法:goto语句(不推荐)

虽然能用goto跳转到指定代码块实现重复,但这种方式容易让代码变得混乱(俗称“面条代码”),新手尽量少用,不过可以了解一下:

string playerName = "";

// 定义一个标签,用来跳转
StartNameInput:

Console.WriteLine("请输入你的名字:");
playerName = Console.ReadLine();

Console.WriteLine($"你输入的名字是:{playerName},是否确认?(y/n)");
string confirmChoice = Console.ReadLine().ToLower();

if (confirmChoice == "y")
{
    Console.WriteLine($"欢迎你,{playerName}!");
}
else
{
    Console.WriteLine("重新输入名字吧!");
    goto StartNameInput; // 跳回标签处,重复流程
}

// 游戏逻辑
Console.WriteLine("开始游戏!");

总结:优先用do-while循环,它是结构化编程的标准写法,代码清晰易维护,完全能满足你的需求。

内容的提问来源于stack exchange,提问作者Burning-Compiler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 19:46:15