c# if语句内的if语句,以随机值作为修饰符
本文关键字:if 语句 随机 | 更新日期: 2023-09-27 18:03:18
代码输出所有的writeline,而不是一个。我知道有某种数组可以使它更简单,但我还不知道它的全部。请注意,删除了一些代码,因为我不想填充页面。
//Förberedelser
Random numberGenerator = new Random();
int num01 = numberGenerator.Next(2, 10);
int num02 = numberGenerator.Next(2, 10);
int svarSvar = numberGenerator.Next(1, 6);
int numKey = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("");
if (numKey == num01 * num02)
{
Console.ForegroundColor = ConsoleColor.Green;
if (svarSvar == 1);
{
Console.WriteLine("GoGött du du vann! :D");
}
if (svarSvar == 2);
{
Console.WriteLine("Kanoners du klarade den fint du!");
}
if (svarSvar == 3);
{
Console.WriteLine("Tror inte ens att tomten skulle ta den så bra som du gjorde.");
}
if (svarSvar == 4);
{
Console.WriteLine("placeholder");
}
if (svarSvar == 5);
{
Console.WriteLine("placeholder");
}
}
else
{
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("'n Du svarade tyvärr fel. 'n Svaret är: ");
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(num01 * num02);
}
//Avslut och loop
Console.ReadKey();
Console.Clear();
问题是if()
行末尾的分号:
if (svarSvar == 1);
从技术上讲,if()
和当为true时执行的代码是一个语句。如果去掉大括号,就更清楚了:
if (svarSvar == 1) Console.WriteLine("GoGött du du vann! :D");
这都是一个语句,只有在末尾有一个分号。当你把它写成你拥有它的样子时,它实际上相当于:
if (svarSvar == 1)
/* empty statement here */ ;
{
Console.WriteLine("GoGött du du vann! :D"); // not attached to if(), always done.
}
去掉if语句后面的分号。你应该看看switch语句:)
一种可能是switch语句:
https://msdn.microsoft.com/en-us/library/06tc147t.aspx?f=255& MSPPError = -2147217396
switch (svarSvar)
case 1:
Console.WriteLine("GoGött du vann! :D");
break;
case 2:
Console.WriteLine("Kanoners du klarade den fint du!");
break;
等。