初めに
とりあえず入門書を一周終わらせたので、知識をものにするためにリファクタリングに挑戦することにしました。続くかはわかりませんが、第一弾です。
最初のコード
import java.io.*;
class test
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new FileReader("test1.txt"));
String [] story = new String [10];
String str;
for(int i=0; i<story.length; i++)
{
str = br.readLine();
story[i] = str;
}
//ファイルは読み込んで、中の文字列を配列に格納した
for(int i=0; i<6; i++)
{
System.out.println(story[i]);
}
BufferedReader ibr = new BufferedReader(new InputStreamReader(System.in));
String str2 = ibr.readLine();
int option = Integer.parseInt(str2);
if(option == 1)
{
for(int i=6; i<8; i++)
{
System.out.println(story[i]);
}
System.out.println("おしまい");
}
else if(option == 2)
{
for(int i= 8; i<10; i++)
{
System.out.println(story[i]);
}
System.out.println("おしまい");
}
else
{
System.out.println("無効な選択肢です");
}
}
}
これがtest.javaというファイルに書いたコードです。別ファイルの内容を読み込み、表示して、入力する選択肢に応じて続きの内容が異なる、というものです。
別ファイルであるtest1.txtの中身は以下の通りです。
あなたは今急いで職場に向かっています。
しかしどうやら道に人が倒れているようです。
あなたはどうしますか?
選択肢1:助ける
選択肢2:助けない
選択肢の数字を入力してください
倒れていた人は職場のお偉いさんでした。
とても感謝され、昇進も決まりました。
あなたは倒れている人を見捨てて職場へ到着しました。
しかし、その人がどうなったかが気がかりで、いつもはしないミスを連発してしまい、怒られてしまいました。
またこれらのコードの実行結果を以下に示します。
-
選択肢1を選んだ場合
あなたは今急いで職場に向かっています。
しかしどうやら道に人が倒れているようです。
あなたはどうしますか?
選択肢1:助ける
選択肢2:助けない
選択肢の数字を入力してください
1(これが入力した数字)
倒れていた人は職場のお偉いさんでした。
とても感謝され、昇進も決まりました。
おしまい -
選択肢2を選んだ場合
あなたは今急いで職場に向かっています。
しかしどうやら道に人が倒れているようです。
あなたはどうしますか?
選択肢1:助ける
選択肢2:助けない
選択肢の数字を入力してください
2(これが入力した数字)
あなたは倒れている人を見捨てて職場へ到着しました。
しかし、その人がどうなったかが気がかりで、いつもはしないミスを連発してしまい、怒られてしまいました。
おしまい
こんな感じです。
コード自体が簡単で短いので、リファクタリングしてもどうなるかはわかりませんが、とりあえずやってみます。