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();

c# if语句内的if语句,以随机值作为修饰符

问题是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;

等。