C#错误输出中的随机数生成

C#错误输出中的随机数生成,c#,if-statement,random,numbers,C#,If Statement,Random,Numbers,因此,我试图生成一个随机数,如果这个数是3或8我想知道会发生什么,在这种情况下,将1加到2个整数中的一个 请记住,我只想用C语言写一本书,用VB学习一些知识 int Number1 = 0; int Number12 = 0; string text; string text2; Exexs: Random rnd = new Random(); int month = rnd.Next(1, 10); if (month =

因此,我试图生成一个随机数,如果这个数是
3
8
我想知道会发生什么,在这种情况下,将
1
加到2个整数中的一个

请记住,我只想用C语言写一本书,用VB学习一些知识

    int Number1 = 0;
    int Number12 = 0;
    string text;
    string text2;

    Exexs:

    Random rnd = new Random();
    int month = rnd.Next(1, 10);

    if (month = 8)
    {
        Number1++;
    }
    else if (month = 3)
    {
        Number12++;
    }

    if (Number1 = 1)
    {
        text = "*";
    }

    goto Exexs;
在c#中,为了进行比较,需要使用double= 因此,不是:

if (month = 8)
类型:


代码中有太多错误;看起来,实现应该是这样的:

int Number1 = 0;
int Number12 = 0;
// Do not forget to initialize the varaiables:
string text = "";
string text2 = "";

// Create (and initialize by system tomer) Random once, use many
Random rnd = new Random();

// Do not use goto, but loops (they are more readable: we have an infinite loop here)
while (true) {
  int month = rnd.Next(1, 10);

  // (month = 8) is an assignment, not comparison which is (month == 8)
  // Let's use C/C++ language trick: comparing in reversed order: 
  // (8 == month) and you can easily find out such errors
  if (8 == month)
    Number1++;
  else if (3 == month)
    Number12++;

  if (1 == Number1) {
    text = "*";

    // you want to leave the infinite loop (your current code never stops)
    break; 
  }
}

// Let's inspect the outcome
Console.Write($"Number1 = {Number1}; Number12 = {Number12} Text = {text}"); 

第一:永远不要使用
goto
。这会使您的代码难以阅读和调试。除此之外,您还应该阅读一些关于C#的书,或者至少阅读一些教程。在if条件下,您缺少“==”。例如,如果(月=8)需要重新创建,则月=8)不要重新创建
Random
-
Random rnd=new Random()-执行一次,然后使用它虽然这很明显,但为什么不提及代码的确切错误?您如何知道运行此代码的结果?它什么也不输出,永远运行。。。无止境的循环!多亏了你们,我把它修好了,错误在于int不是一个整数bool@Kernel使这个问题无法回答,因为它缺乏所有相关信息。
int Number1 = 0;
int Number12 = 0;
// Do not forget to initialize the varaiables:
string text = "";
string text2 = "";

// Create (and initialize by system tomer) Random once, use many
Random rnd = new Random();

// Do not use goto, but loops (they are more readable: we have an infinite loop here)
while (true) {
  int month = rnd.Next(1, 10);

  // (month = 8) is an assignment, not comparison which is (month == 8)
  // Let's use C/C++ language trick: comparing in reversed order: 
  // (8 == month) and you can easily find out such errors
  if (8 == month)
    Number1++;
  else if (3 == month)
    Number12++;

  if (1 == Number1) {
    text = "*";

    // you want to leave the infinite loop (your current code never stops)
    break; 
  }
}

// Let's inspect the outcome
Console.Write($"Number1 = {Number1}; Number12 = {Number12} Text = {text}");