У меня есть массив и цикл for
, оператор if
, который проверяет i + 1
. Однако на последней итерации цикла массив выходит за границы. Я хочу вернуться к началу массива, когда это произойдет. Как лучше всего вернуться к array[0]
? Вот мой код:
int[] array = new int[5];
array[0] = new int(5);
array[1] = new int(7);
array[2] = new int(3);
array[3] = new int(1);
array[4] = new int(9);
for (int i = 0; i < array.Length; i++)
{
if (array[i + 1] != 0)
// Do something (obviously in this example, this will always occur)
{
}
Я могу сделать следующее, но для этого мне нужно продублировать свой код (и мой текущий код внутри этого огромен). Есть ли лучший способ сделать следующее?
int[] array = new int[5];
array[0] = new int(5);
array[1] = new int(7);
array[2] = new int(3);
array[3] = new int(1);
array[4] = new int(9);
for (int i = 0; i < array.Length; i++)
{
if (i != array.Length - 1)
{
if (array[i + 1] != 0)
// Do something (obviously in this example, this will always occur)
{
}
else
{
if (array[0] != 0)
// Do something (obviously in this example, this will always occur)
{
}
}
i+1
? - person   schedule 04.12.2013for
петель. Используйтеforeach
- person Federico Berasategui   schedule 04.12.2013foreach
не лучший выбор, если вам нужно сравнить следующий элемент. - person MarcinJuraszek   schedule 04.12.2013i + 1
, потому что в реальном коде он вычитаетarray[i]
изarray[i + 1]
. Я не включил это в упрощенную версию. - person Keavon   schedule 04.12.2013