#include <stdio.h>
main() {
int x,y,z;
printf("数値を2つ入力して下さい : ");
scanf("%d %d",&x,&y);
for(;;) {
if(x%y==0) break;
else { z=x; x=y; y=z%y; }
}
printf("最大公約数 : %d",y);
}

c言語はやり始めて間もない状態です。
最大公約数を求めるプログラムは上記のようになるらしいのですが、for文の(,,)内に条件や初期設定等を示さないのはなぜなのでしょうか?
また、7行目の"break"の意味は「繰り返し作業を終える」と捉えてよろしいのでしょうか?
ご教授の程、宜しくお願い致します。