首页 > 解决方案 > 循环遍历数组,然后向后循环。[C]

问题描述

我想让一个程序循环遍历数组,然后向后循环。如何用更少的 C 代码让它变得更好?数组有 8 个元素!

while (1) {
    if (i == 0) {
        direction = 0; // RIGHT DIRECTION
    }
    if (i == 7) {
        direction = 1; // LEFT DIRECTION
    }
    PORTD = array[i]; // NEEDED ARRAY ELEMENT

    if (direction == 0) {
        i++;
    } else {
        i--;
    }
}

标签: calgorithm

解决方案


您可以通过direction为下一个索引1-1.

这是修改后的版本:

int i = 0, direction = 1;
for (i = 0;; i += direction) {
    if (i == 0) {
        direction = 1; // RIGHT DIRECTION
    } else
    if (i == 7) {
        direction = -1; // LEFT DIRECTION
    }
    PORTD = array[i]; // NEEDED ARRAY ELEMENT
}

推荐阅读