添加'if'语句

时间:2013-12-27 22:29:03

标签: c# if-statement generator

到目前为止,我正试图让一个数字生成器工作并且它的状态良好,但我最近遇到了一些问题。所以我试图做的是使用默认字符串生成一个生成器,然后在它的末尾添加一些数字。我已经知道了所有这些。现在,我试图这样做,如果我的发电机吐出的数字是'5',那么下一个数字必须是'1'。我不完全确定这是否可行,但这是我的代码:

    public string GenerateRandomCode(int length)
    {
        string charPool = "ABCDEF1234567890";
        StringBuilder rs = new StringBuilder();
        Random random = new Random();

        for (int i = 0; i < length; i++)
        {
              rs.Append(charPool[(int)(random.NextDouble() * charPool.Length)]);
        }
        return rs.ToString();
    }

    public string Random(int length)
    {
        string charPool = "A457";
        StringBuilder rs = new StringBuilder();
        Random random = new Random();

        for (int i = 0; i < length; i++)
        {
            rs.Append(charPool[(int)(random.NextDouble() * charPool.Length)]);
        }
        return rs.ToString();
    }

    public string Char(int length)
    {
        string charPool = "ABF35689";
        StringBuilder rs = new StringBuilder();
        Random random = new Random();

        for (int i = 0; i < length; i++)
        {
             rs.Append(charPool[(int)(random.NextDouble() * charPool.Length)]);
        }
        return rs.ToString();
     }

     public string Next(int length)
     {
         string charPool = "F01";
         StringBuilder rs = new StringBuilder();
         Random random = new Random();

         for (int i = 0; i < length; i++)
         {
             rs.Append(charPool[(int)(random.NextDouble() * charPool.Length)]);
         }
         return rs.ToString();
    }

    private void button1_Click(object sender, EventArgs e)
    {
       textBox1.Text = "00000001008" + Random(1) + "000" + Char(1) + Next(1) + GenerateRandomCode(15);
    }
  }
}

因此,如果Char ='5',我希望Next等于'1'

2 个答案:

答案 0 :(得分:2)

你可以。记住最后一个角色,然后采取行动。

// ...
char c = '-';
for (int i = 0; i < length; i++) {
    if (c == '5') {
        c = '1';
    } else {
        c = charPool[random.Next(charPool.Length)];
    }
    rs.Append(c);
}
// ...

random.Next(charPool.Length)自动生成[0 ... charPool.Length-1]范围内的整数。

答案 1 :(得分:0)

不确定你拍的是什么,但也许是这样的(?):

private void button1_Click(object sender, EventArgs e)
{
   string sRandom = Random(1);
   string sChar = Char(1);
   string sNext = "1";
   if (sChar != "5") sNext = Next(1);

   textBox1.Text = "00000001008" + sRandom + "000" + sChar + sNext + GenerateRandomCode(15);
}

因此,每当Char(1)的方法调用返回字符串“5”时,sNext将保持其初始值“1”。否则,如果Char(1)不是“5”,则sNext将被分配下一个(1)的调用结果。