最終更新日 2020/7/16 ©2020 by T.IZUMI
敢えて for や while を使わずに goto でプログラムをかいてみる
以下の処理を行うプログラムを、 for や while を使わずに goto により作成せよ。 ここで、 if 文で行える動作は goto のみとし、else は使用禁止とする。
以下は、C言語による実装例。
配列 a[]
と要素数 n
を入力し、合計値を返す。
array_sum()
が普通にforループで実装した例。
array_sum_goto()
が敢えてgotoで実装した例。
プログラム例 array_sum() |
---|
#include <stdio.h> #include <stdlib.h> #define ARYSZ 256 int array_sum(int a[],int n){ int i,sum; sum=0; for (i=0;i<n;i++) { sum=sum+a[i]; } return sum; } int array_sum_goto(int a[],int n){ int i,sum; sum=0; i=0; LOOP_BEGIN: if (i<n) goto IF_TRUE; goto LOOP_END; IF_TRUE: sum=sum+a[i]; i++; goto LOOP_BEGIN; LOOP_END: return sum; } int main(void){ int a[ARYSZ],i; for (i=0;i<ARYSZ;i++) a[i]=(random()%2047)-1023; printf("x=%d\n",array_sum(a,ARYSZ)); printf("x=%d\n",array_sum_goto(a,ARYSZ)); return 0; } |