20世纪60年代初,在提倡规则让读写程序更轻松的时代潮流中,结构化程序设计应运而生。时至今日,大家对if、while这样的语句早已习以为常。结构化程序设计的初衷正是通过导入这些语句使代码结构理解变得简单。
汇编语言中是没有if语句的。
int main(){
int x = 123
if (x == 456){
...
}
/* if语句后 */
}
_main: | ||
... | ||
mov1 $123, -8(%rbp) | ① | |
# if语句前 | ||
mov1 -8(%rbp) , %eax | ② | |
cmp1 $456, %eax | ||
jmp LBB1_2 | ③ | |
# if语句中 | ④ | |
LBB1_2: | ⑤ | |
# if语句后 | ||
... |
1 首先把-8(%rbp)理解为C语言中的x;
2 ①句把数值123代入x;
3 ②句把x的值移存到临时场所后,把它和数值456比较;
4 ③句是指当条件为假时转到LBB1_2处;
void use_while(int x){
printf("use_while/n");
while(x > 0){
printf("%d/n", x) ;
x--;
}
}
void use_while(int x){
printf("use_while/n");
start_loop:
if(!(x > 0)) goto end-loop;
printf("%d/n", x) ;
x--;
goto start_loop;
end_loop:
return;
}
for (i = 0; i < N; i++){
printf("%d\n", i);
}
i = 0;
while(i < n){
printf("%d\n", i);
i++;
}
while语句通过条件判断来控制循环操作,for语句通过循环次数来控制循环操作;而foreach句型则是通过处理的对象来控制循环损伤