C#登录程序改造需求:实现指令触发重复运行替代重启
实现无需重启的C#登录程序重运行功能
要实现输入指定指令(TER/TOR)重新触发登录流程,核心是把登录逻辑封装成可重复调用的方法,并用循环控制执行流程,替代原来的重启程序逻辑。以下是修改后的完整代码及关键改动说明:
修改后的完整代码
using System; namespace GOVERMENTPROGRAM { internal class Program { static void Main(string[] args) { bool shouldRestart; do { shouldRestart = RunLoginFlow(); } while (shouldRestart); Console.WriteLine("程序退出"); Console.ReadKey(); } // 封装登录流程为独立方法,返回是否需要重新运行 static bool RunLoginFlow() { Console.ForegroundColor = ConsoleColor.Green; Console.WindowWidth = 70; Console.WriteLine("WELCOME TO THE A.A.A.R GOVERMENT (Sniper) PROGRAM TO ACCESS INFORMATION\nPLEASE ENTER YOUR ACCOUNT INFORMATION"); Console.Write("TAG:"); Console.ForegroundColor = ConsoleColor.Blue; string TAG = Console.ReadLine(); Console.ForegroundColor = ConsoleColor.Green; if (TAG == "A.A.A_ter5") { Console.WriteLine("Welcome Sniper #5"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("MISSION OF THE DAY:"); Console.WriteLine("A new cocaine drug dealer is trending in the city"); Console.WriteLine("Your job is to assassinate his team and call our organization"); // 登录成功后询问是否重新登录 Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("\n输入 TER 重新启动登录流程,输入其他内容退出"); string input = Console.ReadLine(); return input.Equals("TER", StringComparison.OrdinalIgnoreCase); } else { Console.WriteLine("That Does Not exist"); Console.Write("Enter Organization password to reveal TAGS\nPASSWORD:"); } Console.ForegroundColor = ConsoleColor.Blue; string password = Console.ReadLine(); Console.ForegroundColor = ConsoleColor.Green; if (password == "231234TER") { Console.Write("TEAM(IN XXX):"); Console.ForegroundColor = ConsoleColor.Blue; string TEAM = Console.ReadLine(); Console.ForegroundColor = ConsoleColor.Green; if (TEAM == "SNIPER") { Console.WriteLine("A.A.A_ter1\nA.A.A_ter2"); Console.WriteLine("A.A.A_ter3\nA.A.A_ter4"); Console.WriteLine("A.A.A_ter5"); Console.WriteLine("输入 TER 重新启动登录流程,输入其他内容退出"); string input = Console.ReadLine(); return input.Equals("TER", StringComparison.OrdinalIgnoreCase); } else { Console.WriteLine("Wrong, software login is built for specific team and you are not on that team"); Console.WriteLine("输入 TOR 重新启动登录流程,输入其他内容退出"); Console.ForegroundColor = ConsoleColor.Yellow; string input = Console.ReadLine(); return input.Equals("TOR", StringComparison.OrdinalIgnoreCase); } } else { Console.WriteLine("WRONG"); Console.WriteLine("输入 TER 重新启动登录流程,输入其他内容退出"); Console.ForegroundColor = ConsoleColor.Yellow; string input = Console.ReadLine(); return input.Equals("TER", StringComparison.OrdinalIgnoreCase); } } } }
关键改动说明
- 封装登录逻辑:把原来Main中的登录代码抽成
RunLoginFlow()方法,返回布尔值表示是否需要重新执行登录流程,让代码结构更清晰,便于重复调用。 - 循环控制流程:Main方法中用
do-while循环,根据RunLoginFlow()的返回值决定是否再次执行登录流程,替代重启程序的逻辑。 - 指令处理逻辑:在每个分支(登录成功、密码错误、团队错误等)添加指令输入判断,当用户输入指定指令(TER/TOR,忽略大小写)时返回
true触发重运行,否则返回false退出程序。 - 修复原代码问题:移除了原代码中空的while循环(无实际作用),统一了输入判断的逻辑,避免流程混乱。
内容的提问来源于stack exchange,提问作者ammar ahmed2
相关产品推荐
相关产品推荐

