输入必须等于5个不同的字符串值之一

时间:2019-04-01 15:29:46

标签: c#

用户输入必须等于5个不同字符串之一,否则用户必须再次输入,直到输入等于5个字符串之一。

我编写了一些代码,它的工作方式与第一个输入的输入等于5个字符串之一相同,否则,程序陷入了无限循环。

novaDrzava.PrevladujocaVera = Console.ReadLine();

var vera = novaDrzava.PrevladujocaVera;
var prvacrkaVera = vera.Substring(0, 1);
var ostaloVera = vera.Substring(1, vera.Length - 1);

prvacrkaVera = prvacrkaVera.ToUpper();
ostaloVera = ostaloVera.ToLower();

vera = prvacrkaVera + ostaloVera;


while (true)
{
    if(vera == "Krščanstvo")
    {
        break;
    }

    if (vera == "Krscanstvo")
    {
        break;
    }

    if (vera == "Hinduizem")
    {
        break;
    }

    if (vera == "Islam")
    {
        break;
    }
    if (vera == "Budizem")
    {
        break;
    }

    Console.WriteLine("Vnesite ustrezno vero");


    vera = Console.ReadLine();
    vera = prvacrkaVera + ostaloVera;
}

3 个答案:

答案 0 :(得分:3)

由于标识符不是英文,所以我无法完全阅读您的代码。但是,考虑到您剩下的问题,我想这可能就是您想要的:

var words = new List<string>
{
    "Krščanstvo",
    "Krscanstvo",
    "Hinduizem",
    "Islam",
    "Budizem"
};

while (true)
{
    var input = Console.ReadLine();

    if (words.Contains(input, StringComparer.InvariantCultureIgnoreCase))
        break;

    Console.WriteLine("Invalid selection. Please try again");
}

答案 1 :(得分:0)

您忘记在循环中重新分配prvacrkaVeraostaloVera的值

while (true)
{
    if(vera == "Krščanstvo")
    {
        break;
    }

    if (vera == "Krscanstvo")
    {
        break;
    }

    if (vera == "Hinduizem")
    {
        break;
    }

    if (vera == "Islam")
    {
        break;
    }

    if (vera == "Budizem")
    {
            break;
    }

    Console.WriteLine("Vnesite ustrezno vero");
    vera = Console.ReadLine();

    prvacrkaVera = vera.Substring(0, 1);
    ostaloVera = vera.Substring(1, vera.Length - 1);

    prvacrkaVera = prvacrkaVera.ToUpper();
    ostaloVera = ostaloVera.ToLower();

    vera = prvacrkaVera + ostaloVera;
}

答案 2 :(得分:-1)

使用switch语句,以便您可以轻松检测何时输入其他值

           while (true)
            {
                switch(vera)
                {
                    case "Krscanstvo" : 
                    break;

                    case "Krščanstvo" : 
                    break;

                    case "Hinduizem" : 
                    break;

                    case "Islam" : 
                    break;

                    case "Budizem" : 
                    break;

                    default :
                        break; //exit while loop
                    break;
                }
            }