Как работает данный код по шагам?

Он задаёт массив несовпадающих элементов, однако я не понимаю, как именно всё происходит по шагам.

#include <iostream>
using namespace std;
int main()
{
    const int k=10;
    int m[k];
    for(int i=0; i<k; i++)
    {
    a: 
        m[i]=1+rand()%k;
        for (int j=0; j<i; j++)
            if (m[j]==m[i]) 
                goto a;
    }
    for(int i=0; i<k; i++)
        cout << m[i]<<" ";
    cin.get();
    return 0;
}

Ответы (0 шт):