循环使用多个标题

时间:2018-02-14 04:23:57

标签: c

我经常遇到循环中重复相同代码的问题,但需要几个循环。一个简单的例子是围绕一个正方形的边缘移动。

IEnumerable

但是,通常你需要反复对方块的坐标做一些事情。这意味着制作4个独立的范围,每个范围都重复相同的代码。是否有一些代码允许您使用多个顺序循环条件?该代码可能如下所示:

ToList

我知道有迭代器,但我认为与能够连接循环相比,它们很麻烦。有没有像这样的重复循环结构的语言?

1 个答案:

答案 0 :(得分:1)

至于你的具体问题 - 没有任何东西可以直接实现AFAIK但是..我在大学里为这个问题写了一些代码,也许你可以用它作为基础

基本上你可以从单个迭代器计算坐标 - 这是一个讨厌的代码,但也许它会对你的问题有所帮助

它将打印出10x10平方(1个索引)的方形坐标

#define WIDTH 10
int main()
{
    int iter = 0;
    int x = 0,y = 0;
    while ( iter < (WIDTH*4) ) {
        if ( iter < WIDTH ) {
            x = iter;
            y = 0;
        } else if ( iter >= WIDTH && iter < ( 2 * WIDTH ) ) {
            x = WIDTH -1;
            y = (iter % WIDTH) ;
        } else if ( iter >= (2 * WIDTH) && iter < ( 3 * WIDTH ) ) {
            x = (WIDTH) - (iter - (2 * WIDTH)) - 1;
            y = WIDTH - 1;
        } else {
            x = 0;
            y = (4 * WIDTH) - iter - 1;
        }
        printf("(%d, %d) ", x+1 ,y+1 );
        iter++;
    }
    printf("\n");

    return 0;
}

注意:角点坐标重复