求各位帮我看看,我这不理解。

这个代码的运行原理是什么?
for循环的缩进是必要的吗?
for循环后面可以不接花括号而直接输入下一个语句吗?

#include<stdio.h>
int main()
{
    int a, b, c;
    printf("\n");
    for (a = 1; a < 5; a++)
        for (b = 1; b < 5; b++)
            for (c = 1; c < 5; c++)
                if (a != b && a != c && b != c)
                    {
                        printf("%d%d%d", a, b, c);
                        printf("\n");
                    }
    return 0;
}

缩进非必须,只是为了增强代码的可读性。
可以不接花括号直接输入下一个语句,但只有一行有效(在上面for循环中)