C#循环忽略条件语句

时间:2019-05-17 17:55:20

标签: c# loops console-application

我已经在类程序中的方法中创建了一个Dice-Simulator。

然后在Main方法中,我试图创建一个循环以询问用户是否希望再次玩游戏。

由于某种原因,循环完全忽略了我的条件语句,我也不知道为什么。

我输入数字或任何乱码都没关系,它仍然可以重新启动游戏。

唯一有效的方法是输入“ N”或“ n”退出。

        string alt;
        do
        {
            GameLogic();

            Console.WriteLine("Play again?");
            Console.WriteLine("[Y]es | [N]o");

            alt = Console.ReadLine();
            alt.ToLower();

            if (alt == "Y" || alt == "y")
            {
                Console.Clear();
                GameLogic();
            }
            else if (alt == "N" || alt == "n")
            {
                break;
            }
            else
            {
                Console.WriteLine("Invalid input!");
            }
        } while (alt != "N" || alt != "n");

        Console.WriteLine("\nPress any key to quit...");
        Console.ReadKey();

我希望它能够执行条件要求它执行的操作。如果输入的不是“ Y,y”或“ N,n”,则应该显示消息“ Invalid input!”。

仅当您输入“ Y”或“ y”时,它才应重新启动游戏。

2 个答案:

答案 0 :(得分:3)

我以某种方式解决了它...我不得不移动GameLogic();在循环之外。

答案 1 :(得分:0)

您的逻辑有些偏离。

尝试以下代码:

betPoints = Math.min(playerPoints, betPoints);

基本上,在您的do while循环开始时,GameLogic会受到攻击。

因此,您必须确保它是第一次执行,然后只有在有人选择时它才会第二次执行。