请问这是什么问题?关于循环语句的问题。谢谢解答!

#include <stdio.h> #include <windows.h> int main(void) { int i; while (1) { for (i=1;i<=500;i++) { if ( i >= 500 ) { goto End; } else { printf("%d\n",i); } } } End: system("PAUSE"); return 0; }用Dev_c++编译的。
问题:为什么输出是从201 开始的结束是499?为什么不是从1~499呢??vc++6.0编译也是这个结果?
谢谢各位解答。。