2017-10-21 44 views
-2

所以,我知道,与一个代码段,例如:创建具有(X ++)%N在C#递减序列

int x = 0; //class field variable 

private void button1_Click(object sender, EventArgs e) 
{ 
    Label1.Text += (x++)%4 + 1; 
} 

如果按钮被点击8倍的12341234的序列中显示的形式。

我的目标是让43214321显示。

我能够得到与:

int x = 0; //class field variable 

private void button1_Click(object sender, EventArgs e) 
{ 
    Label1.Text += 3-(x++)%4; 
} 

我也能得到与32143214:

int x = 1; //class field variable 

private void button1_Click(object sender, EventArgs e) 
{ 
    Label1.Text += 4-(x++)%4 + ; 
} 

我在做什么错?有没有一个通用公式?

注:我的X确实有被初始化到1

回答

0

尝试使用这个公式: 5-(1+(x+++3)%4)

即:

Label1.Text += (5-(1+(x+++3)%4)).ToString(); 
0

只要改变公式: Label1.Text += 4-((x-1)++)%4;

0

您写的第一行代码基本上是在3到1之间循环。

x=0;  
Label1.Text += 3-(x++)%4; 

x = 0 ||输出= 3。
Label1.Text = 0 + 3-(0%4)=
X = 1 ||输出= 2。
Label1.Text = 0 + 3-(1%4)=
x = 2 ||输出= 1。
(如上所述空转)
x = 3 ||输出= 0。
(如上所述进行空转)
x = 4并且循环重复。

你可以干运行的代码,第二行要了解为什么你的答案来自它的方式,而是要回答简洁你的问题:

int x = 0; //class field variable 
private void button1_Click(object sender, EventArgs e) 
    { 
      Label1.Text += 4-(x++)%4; 
    }