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
相关产品推荐
相关产品推荐

