【パワー系PG】データを整数型で表現しないで列挙型を使え
あなたのプログラム、「intを不必要に多用」してませんか?
どの言語にもenumみたいな列挙型ってあると思うんだ。
C言語における、intとenumによる実装の違いを紹介しよう。
intを使ったときの実装
#include <stdio.h> int main(void){ int warningRate; //2桁入力【例:36】 scanf("%02d", &warningRate); int signal; if(warningRate < 50){ signal= 0; } else if(warningRate < 75){ signal= 1; } else{ signal= 2; } switch(signal){ case 0: printf("緑、今日も平和だ"); break; case 1: printf("黄、危ない予感"); break; case 2: printf("赤、逃げろー!"); break; } }
読ませる側や保守・運用を考えない
パワー系PGの臭いがする!!
enumを使ったときの実装
#include <stdio.h> enum Signal{ Green, Yellow, Red, }; int main(void){ int warningRate; //2桁入力【例:36】 scanf("%02d", &warningRate); enum Signal s; if(warningRate < 50){ s = Green; } else if(warningRate < 75){ s = Yellow; } else{ s = Red; } switch(s){ case Green: printf("緑、今日も平和だ"); break; case Yellow: printf("黄、危ない予感"); break; case Red: printf("赤、逃げろー!"); break; } }