C#的一个显示图片上一张和下一张的代码,有点看不懂,求大神指导

protected void btnNext_Click(object sender, EventArgs e)//查看下一张
{
int i = currentIndex;
SetIndex((i+1)%5);
this.Image1.ImageUrl = shanImage[i]; //设置显示图片
this.lblName.Text = shanName[i]; //显示旅游景点名称
}

protected void btnLast_Click(object sender, EventArgs e)//查看上一张
{
int i = currentIndex;
SetIndex((i + 4) % 5);
this.Image1.ImageUrl = shanImage[i]; //设置显示图片
this.lblName.Text = shanName[i]; //显示旅游景点名称
}
private static void SetIndex(int i) //设置当前索引
{
currentIndex = i;
}
里面的SetIndex((i + 4) % 5);是什么意思啊,看不懂,文件夹总共有5张图片

 SetIndex((i + 4) % 5);
相当于
if (i == 0) i = 5; else i = i - 1;
SetIndex(i);
 写错了
SetIndex((i + 4) % 5);
相当于
if (i == 0) i = 4; else i = i - 1;
SetIndex(i);

%5是取余数

当i=1的时候
(0+4)/5,余数4
当i=1的时候
(1+4)/5,余数0
当i=2的时候
(2+4)/5,余数1
i=3
(3+4)/5,余数2
i=4
(4+4)/5,余数3
i=5
(5+4)/5,余数4
...