質問: int main(void) { char key; while(1) { printf("==================\n" "|" "|1番目の画面です "|" "=================="); scanf("%c", &key);//aキーが入力されたら2番目の画面を表示する switch(key) { case 'a': printf("==================\n" "|" "|2番目の画面です "|" "=================="); scanf("%c", &key);//bキーが入力されたら1番目の画面を表示する break; case 'z': printf("==================\n" "|" "|終了します "|" "=================="); scanf("%c", &key);//zキーが入力されたらアプリを終了する } } return(0); }
回答: 各画面に番号を振って、入力KEYを列、現在表示している画面番号を行としたテーブルを作ります。 各セルに「表示画面:押されたKEY」に対してどの画面番号を表示するかを記入します。 遷移先が無い(画面を変える必要がない)場合、表示している画面番号を記入します。 出来上がった表に基づき、二次元配列を作ります。 mainのループは以下を行うようにすると、ご希望の機能が実現できるのではないかと思います。 ・キーを読み込む(scanf) ・二次元配列を参照する(table[gamenNo][key]) ・得られた値に対応する画面を表示する AndroidやらiOSのGUI作成がどんどん自動化されて、最近はあまりみなくなりましたが、 作ったテーブルのことを「画面遷移表」などといいます。