这里用go to 来模拟汇编他们的区别
while 代码
int i = 0; while (i < 100) { i++; }
goto 实现while
int i = 0; WHILE_BEGIN: if (i < 100) { goto WHILE_END; } i++; goto WHILE_BEGIN; WHILE_END: return 0;
do while
int i = 0; do { i++; } while (i <100);
goto 实现do while
WHILE_BEGIN: i++; if (i < 100) { goto WHILE_BEGIN; }
for循环
for (int i = 0; i < 100; i++) { }
goto 实现for
FOR_INIT: int i = 0; goto FOR_CMP; FOR_STEP: i++; FOR_CMP: if (i > 100) { goto FOR_END; } goto FOR_STEP; FOR_END:
可以看到for实现是最为麻烦的 只有do while 效率最高 简单点说就是 用的越舒服编译器要实现的东西就越多