用户输入必须等于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;
}
答案 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)
您忘记在循环中重新分配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();
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;
}
}