C语言问题?为什么会死循环?

#include <stdio.h>
main()
{
int j;
for (j=1;j<=3;j++)
{
if (j=1)
{
printf("D");
}

}
}
屏幕上出无数个D
不解
if (j==1)
{
printf("D"竖好);
}

如果是j=1的埋山话 永远是个正弯纤中值
#include <衡尘改stdio.h>
main()
{
int j;
for (j=1;j<=3;j++)
{
if (j==1)//咐判少些了一个“=”
{
printf("D");
}

}
}
为了避免这种兄谨错误,可以写成if(1==j),如果少些“=”,会报错
if()中凳明型的应该是判断语句,而j=1是赋值枣猜语句,它的值恒为1。
但应该是3个D,怎槐岁么是无数个呢