※ ChatGPTを利用し、要約された質問です(原文:入力番号に応じて該当プログラムを実行させたいです)
Javaプログラムを実行するメニュープログラムを作成したい
このQ&Aのポイント
入力番号に応じて該当プログラムを実行するメニュープログラムを作成したい。
Javaのプログラムを実行する際、選択肢を表示し、選択された番号に対応するプログラムを実行する仕組みを作りたい。
具体的には、Menu.javaとUranai.javaという2つのJavaプログラムがあり、Menu.javaを実行すると選択肢が表示され、選択された番号に応じてUranai.javaが呼び出されるような仕組みを作成したい。
今、4つのJavaプログラムがあります
Menu.java
Uranai.java
Janken.java
Kazuate.java
です。
そして、
<Menu.Java>
package testprogramm;
public class Menu {
public static void main(String[] args) {// 検索処理を実行
System.out.println("ひまつぶし\n1. 占い");// エスケープシーケンス1回のみ
System.out.println("2. じゃんけん" + "\n3. 数当てゲーム");
System.out.println("遊びたいゲームの番号を入力してください:");
}
}
を実行すると、
--------------------
ひまつぶし
1. 占い
2. じゃんけん
3. 数当てゲーム
遊びたいゲームの番号を入力してください:
--------------------
と出てきます。が、単に文字を表示させるプログラムになっております。
このコードを書き換えまして。
例えば「遊びたいゲームの番号を入力してください:1」と、"1"を入力すると。
<Uranai.Java>
package testprogramm;
import java.lang.String;
public class Uranai {
public static void main(String[] args) {
String[] strs = { "大吉", "吉", "普通", "凶", "大凶" };
int x = (int) (Math.random() * strs.length);
System.out.println("今日のあなたの運勢は" + strs[x] + "です。");
}
}
のプログラムが呼び出されまして。
--------------------
ひまつぶし
1. 占い
2. じゃんけん
3. 数当てゲーム
遊びたいゲームの番号を入力してください:1
今日のあなたの運勢は大吉です。
遊びたいゲームの番号を入力してください:
--------------------
のように、「今日のあなたの運勢は大吉です」というUranai.javaの結果が出力されて。
さらに「遊びたいゲームの番号を入力してください:」と、再度、遊びたいゲームの入力を促すような。
そんなプログラムにMenu.Javaを書き換えたいのですが、調べてもどうしても判らず…お力添えをいただけますと幸いです。
よろしくお願い致します。
※OKWAVEより補足:「Webシステム開発」についての質問です。
お礼
リンクありがとうございます、拝見しました。 そうですね。同じクラス内で、if文やwhile文で処理を分岐させて、elseブロックを何個か並べて、そこに処理内容を書いていけばいいとも思ったんですが。 そうすると、Main.javaがすごい長くなってしまい、それがスマートではない気がしまして。 できたら、Main.javaは各クラスからメソッドを呼び出すだけの内容を記述しまして。 メソッドの中身の方は、Uranai.java、Janken.java、Kazuate.javaのそれぞれに書かれているという構成にしたい…と、考えております。
補足
調べまくって何とかなりました!自分のMain.javaに、 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; int n; for(;;){ System.out.print("遊びたいゲームの番号を入力してください:"); str = br.readLine(); n = Integer.parseInt(str); if(n == 1){ Uranai asobi1 = new Uranai(); asobi1.uranaitime(); continue; } if(n == 2){ ・ ・ ・ else{ System.out.println("遊びたいゲームの番号を入力してください:"); } みたいな感じにして。 Uranai.javaの方は、public static void asobi1() { …} のように、各ファイル、asobi1~asobi3メソッドを作って、大きなブロックで囲み、まるごと呼び出せるようにしました。 お騒がせしました<m(__)m>