这是我的代码:
public void button1_Click(object sender, System.EventArgs e)
{
System.Random rnd = new System.Random();
int ci = 1;
int di=1;
int fi=1;
int c = rnd.Next(1, 254);
int d = rnd.Next(1, 254);
for (int f = rnd.Next(1, 254); f < 255; f+=fi)
{
this.BackColor = System.Drawing.Color.FromArgb(c, d, f);
Application.DoEvents();
if (c == 254 || c == 0) { ci *= -1; }
if (f == 254 || f == 0 || f == 50 || f == 100 || f == 150 || f == 200)
{
d += di;
}
if (d == 255 || d == 0)
{
di *= -1;
}
if (f==254|| f == 0)
{
fi *= -1;
}
if (d == 254)
{
c += ci;
}
}
}
弹出的错误是d的值超过256。
但是,当我在调试器中运行它时,我看不到 d 超过 256 的任何情况。当 d 为 255 时,di 变为负数,因此 d += di 会减小 d 的值。因此,d 不可能超过 255。因此,当调试器告诉我 d 刚刚达到 256 时,我会感到困惑。
谁能向我解释为什么会这样?