• ベストアンサー

Cのコンソールアプリ

Cを勉強し始めて1ヶ月ほどになります。 [a] メインメニュー (1)○○開始 (2)○○終了 (3)××× (4)△△△ (9)プログラムの終了 処理番号入力:_ [b] ○○開始 ESCでメインメニューへ戻る (1)○○開始 (2)キャンセル 処理番号入力:_ コンソールアプリで[a]のようなメインメニューがあり [b]のような画面でキャンセルの選択やESCを押した場合などに 「メインメニューに戻る」動作をさせたいのですが、 forやwhileを使えばいいのでしょうか? なかなかイメージが出来ていなくて教えていただけるとありがたいです。 環境はVisual C++ 6.0です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

「状態遷移」という概念を理解すると、多少楽になります。 全体の構成は、 while(1) { キーを読み込む 状態を遷移させる 今の状態における処理をする } という流れになります。 「キーを読み込む」は、getchar() などが使えそうです。 「状態を遷移させる」 というのは、「今の状態(メインメニューだとか、次のメニューだおとか)」と「入力されたキー」から、「次の状態」を決定します。 switch(今の状態) { case メインメニュー : if (入力 == xxx) 次の状態に変化 .... } こんな感じ。 最後に、「今の状態の処理」は、変更された「状態」にあわせて処理をします。 この方法だと、ソースの量は増えますが、一度にデバッグする範囲を狭くすることができます。

その他の回答 (1)

回答No.1

ループ(for、while)を使う 入力関数(get、getchar等)を使う 1.まずメニューが多いとデバッグが難しいので単機能でやってみましょう(終了処理のみとか) 2.初めのうちはフローチャートを書いてみることをお勧めします。

関連するQ&A