請先練習課本 重複結構 goto 基本演練題

........
標記名:
   執行區
goto 標記名;

【重點整理】
1.標記名在同一個命名空間,不能重覆。
2.variable (變數名)、struct (結構)、union (等位) 或 enum (列舉),為不同的命名空間,所以標記名可以與它們內部成員名稱或標記名同名。
3.使用 goto 應小心,避免任意跳躍增加閱讀困難。
4.下面程式碼是列印 1000 以內的所有費氏數並統計各數。
請思考如何改成結構化程式。

【程式碼】

#include <stdio.h>
#include <stdlib.h>

int main() {
int a,b,c,s;
a=1;b=1;s=0;
printf("1\n1\n");
next:
    c=a+b;
    printf("%d\n",c);
    ++s;
    if(c>1000) goto end;
    a=b;
    b=c;
goto next;

end:
printf("Total:%d",s);
}
#include <stdio.h>
#include <stdlib.h>

int main() {
int a,b,c,s;
a=1;b=1;s=0;
printf("1\n1\n");
while(c>1000){
    c=a+b;
    printf("%d\n",c);
    s++;
    a=b;
    b=c;
}

printf("Total:%d",s);
}