如何在循环中询问是/否答案?

时间:2016-04-13 16:57:59

标签: c# console

我试图编写一个简单的控制台游戏应用程序&我遇到了一些尴尬的时刻。好吧,所以在代码中我试图获得一个Y / N输入并且如果是Y则开始游戏,或者如果N则退出。我喜欢听到一些不同的解决方案&对于每次开始或播放游戏时分配随机门号的编码样本,奖金为< 3。

<!-- Add Only On The Homepage Or Else -->
<?php

    $currentpage = $_SERVER['REQUEST_URI'];

    if($currentpage=="/" || $currentpage=="/index.php" || $currentpage=="" ) {

        echo '
            <header id="main-header" class="home">
        ';
    }

    else {

        echo '
            <header id="main-header">
        ';
    }

?>

}

2 个答案:

答案 0 :(得分:1)

这是一个解决这个问题的有点方法:

using System;

namespace ConsoleApplication1
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            while (true)
            {
                Console.WriteLine("Choose 1, 2, 3 or X to exit.");

                // read input
                var s = Console.ReadLine();

                // shall we exit ?
                if (s != null && s.Trim().Equals("X", StringComparison.InvariantCultureIgnoreCase))
                {
                    Console.WriteLine("Bye bye !");
                    break;
                }

                // user picked an activity
                int result;
                if (!int.TryParse(s, out result)) continue; // failed to read input


                // at this point, do something interesting
                Console.WriteLine("You selected : " + result);
            }
        }
    }
}

正如您所见,

  • 用户输入的是大写字母还是小写字母,带有前导/尾随空格 - >&gt;方法处理
  • 您将与用户选择的数字VS string(更好)
  • 进行比较
  • 等...

继续改进:)

编辑:选择随机门

const int maxDoors = 3;
var doors = new Dictionary<int, string>
{
    {0, "Door 1"},
    {1, "Door 2"},
    {2, "Door 3"}
};
var random = new Random();
while (true)
{
    // integrate this inside the previous example loop

    var door = random.Next(maxDoors);
    var doorName = doors[door];
    Console.WriteLine("You have chosen the door: " + doorName);
}

答案 1 :(得分:0)

只需简单地执行Console.ReadLine()。ToLower()(或ToUpper()),您就可以从中忽略任何案例问题。

至于你目前所拥有的,通过说(Console.ReadLine() == "foo" || Console.ReadLine() == "bar"),你正在调用两次输入用户输入的命令,这意味着用户需要输入他们是否想在你进入之前再次玩两次while loop。

关于您的随机门号,请查看System.Random,并在游戏开始时将其分配给变量。 https://msdn.microsoft.com/en-us/library/system.random(v=vs.110).aspx

此外,只需将Console.WriteLine();添加到字符串中即可创建换行符,而不是调用空"\n"

最后,它“更喜欢”,而不是“更好”。