随机数生成在C#中出现了错误

问题描述 投票:-5回答:2

所以我想产生一个随机数,如果数字是38我要发生什么事情,就这种情况下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# if-statement random numbers
2个回答
2
投票

太多的错误是在你的代码;看来,实现应该是这样的:

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}"); 

0
投票

在C#中为了比较,你需要使用双=因此,而不是:

if (month = 8)

类型:

if (month == 8)
© www.soinside.com 2019 - 2024. All rights reserved.