戸建て？マンション？診断チェッカー

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class HouseChecker {

	public static void main(String[] args) throws IOException {
		System.out.println("戸建？マンション？");
		System.out.println("あなたに合うお住まいを見つけましょう!");
		System.out.println("「はい」の場合はyを、「いいえ」の場合はnを入力してください");
		System.out.println();
		q1();
	}

	//q1
	public static void q1() throws IOException {

		boolean loop = true;
		System.out.println("「結婚をしていますか？(またはする予定がある)」");

		while(loop == true) {
			BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));

			String ans = br.readLine();

			if(ans.equals("y")) {					//はい→q2へ
				System.out.println("はい");
				loop = false;
				q2();
			}
			else if(ans.equals("n")) {				//いいえ→q8へ
				System.out.println("いいえ");
				loop = false;
				q8();
			}
			else {
				System.out.println("yかnを入力してください");
				q1();
			}
		}
	}

	//q2
	public static void q2() throws IOException {
		boolean loop = true;

		System.out.println("お子様はいますか？(これからの人も「はい」を選択してください)");

		while(loop == true) {
			BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));

			String ans = br.readLine();

			if(ans.equals("y")) {
				System.out.println("はい");
				loop = false;
				q3();
			}
			else if(ans.equals("n")) {
				System.out.println("いいえ");
				loop = false;
				q8();								//いいえ→q8へ
			}
			else {
				System.out.println("yかnを入力してください");
			}
		}
	}

	//q3
	public static void q3() throws IOException {
		boolean loop = true;

		System.out.println("中学生以上の子供がいる");

		while(loop == true) {
			BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));

			String ans = br.readLine();

			if(ans.equals("y")) {
				System.out.println("はい");
				loop = false;
				q8();
			}
			else if(ans.equals("n")) {
				System.out.println("いいえ");
				loop = false;
				q4();
			}
			else {
				System.out.println("yかnを入力してください");
			}
		}
	}

	//q4
	public static void q4() throws IOException {
		boolean loop = true;

		System.out.println("場所より広さを重視したい");

		while(loop == true) {
			BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));

			String ans = br.readLine();

			if(ans.equals("y")) {
				System.out.println("はい");
				loop = false;
				q5();
			}
			else if(ans.equals("n")) {
				System.out.println("いいえ");
				loop = false;
				q9();
			}
			else {
				System.out.println("yかnを入力してください");
			}
		}
	}

	//q5
	public static void q5() throws IOException {
		boolean loop = true;

		System.out.println("車を持っている");

		while(loop == true) {
			BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));

			String ans = br.readLine();

			if(ans.equals("y")) {
				System.out.println("はい");
				loop = false;
				q6();
			}
			else if(ans.equals("n")) {
				System.out.println("いいえ");
				loop = false;
				q10();
			}
			else {
				System.out.println("yかnを入力してください");
			}
		}
	}

	//q6
	public static void q6() throws IOException {
		boolean loop = true;

		System.out.println("休日はよく街中に出かける");

		while(loop == true) {
			BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));

			String ans = br.readLine();

			if(ans.equals("y")) {
				System.out.println("はい");
				loop = false;
				q10();
			}
			else if(ans.equals("n")) {
				System.out.println("いいえ");
				loop = false;
				q7();
			}
			else {
				System.out.println("yかnを入力してください");
			}
		}
	}

	//q7
	public static void q7() throws IOException {
		boolean loop = true;

		System.out.println("駅から遠くても問題ない(徒歩30分以上)");

		while(loop == true) {
			BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));

			String ans = br.readLine();

			if(ans.equals("y")) {
				System.out.println("はい");
				loop = false;
				result1();
			}
			else if(ans.equals("n")) {
				System.out.println("いいえ");
				loop = false;
				q12();
			}
			else {
				System.out.println("yかnを入力してください");
			}
		}
	}

	//q8
	public static void q8() throws IOException {
		boolean loop = true;

		System.out.println("老後の生活を豊かにしたい");

		while(loop == true) {
			BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));

			String ans = br.readLine();

			if(ans.equals("y")) {
				System.out.println("はい");
				loop = false;
				q9();
			}
			else if(ans.equals("n")) {
				System.out.println("いいえ");
				loop = false;
				q10();
			}
			else {
				System.out.println("yかnを入力してください");
			}
		}
	}

	//q9
	public static void q9() throws IOException {
		boolean loop = true;

		System.out.println("スーパーや施設が近くにある場所がいい");

		while(loop == true) {
			BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));

			String ans = br.readLine();

			if(ans.equals("y")) {
				System.out.println("はい");
				loop = false;
				q10();
			}
			else if(ans.equals("n")) {
				System.out.println("いいえ");
				loop = false;
				q4();
			}
			else {
				System.out.println("yかnを入力してください");
			}
		}
	}

	//q10
	public static void q10() throws IOException {
		boolean loop = true;

		System.out.println("駅から近いほうがいい");

		while(loop == true) {
			BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));

			String ans = br.readLine();

			if(ans.equals("y")) {
				System.out.println("はい");
				loop = false;
				q11();
			}
			else if(ans.equals("n")) {
				System.out.println("いいえ");
				loop = false;
				q12();
			}
			else {
				System.out.println("yかnを入力してください");
			}
		}
	}

	//q11
	public static void q11() throws IOException {
		boolean loop = true;

		System.out.println("車を持っている");

		while(loop == true) {
			BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));

			String ans = br.readLine();

			if(ans.equals("y")) {
				System.out.println("はい");
				loop = false;
				q7();
			}
			else if(ans.equals("n")) {
				System.out.println("いいえ");
				loop = false;
				q12();
			}
			else {
				System.out.println("yかnを入力してください");
			}
		}
	}

	//q12
	public static void q12() throws IOException {
		boolean loop = true;

		System.out.println("県外の転勤がある");

		while(loop == true) {
			BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));

			String ans = br.readLine();

			if(ans.equals("y")) {
				System.out.println("はい");
				loop = false;
				result2();
			}
			else if(ans.equals("n")) {
				System.out.println("いいえ");
				loop = false;
				q13();
			}
			else {
				System.out.println("yかnを入力してください");
			}
		}
	}


	//q13
	public static void q13() throws IOException {
		boolean loop = true;

		System.out.println("不便でも自然豊かな場所に住みたい");

		while(loop == true) {
			BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));

			String ans = br.readLine();

			if(ans.equals("y")) {
				System.out.println("はい");
				loop = false;
				result1();
			}
			else if(ans.equals("n")) {
				System.out.println("いいえ");
				loop = false;
				result2();
			}
			else {
				System.out.println("yかnを入力してください");
			}
		}
	}

	//戸建て派
	public static void result1() throws IOException {
		System.out.println("あなたは戸建て派かもしれません。");
		System.out.println("戸建ては広くて駐車場や庭もつけやすいですが");
		System.out.println("熱効率が悪くなりやすく、場所によっては予算が高くつくかもしれません");
		System.out.println("一度専門家にご相談してみてはいかがでしょうか？");
		System.out.println();

		boolean loop = true;

		System.out.println("もう一度試す場合はyを、終了する場合はnを入力してください");

		while(loop == true) {
			BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));

			String ans = br.readLine();

			if(ans.equals("y")) {
				System.out.println("はい");
				loop = false;
				q1();
			}
			else if(ans.equals("n")) {
				System.out.println("いいえ");
				System.out.println();
				System.out.println("ご利用ありがとうございました");
			}
			else {
				System.out.println("yかnを入力してください");
			}
		}

	}


	//マンション派
	public static void result2() throws IOException {
		System.out.println("あなたはマンション派かもしれません。");
		System.out.println("比較的街中でも予算に届く物件は多数ありますが");
		System.out.println("広さは戸建てより劣り、駐車場等がない場合があります");
		System.out.println("一度専門家にご相談してみてはいかがでしょうか？");
		System.out.println();

		boolean loop = true;

		System.out.println("もう一度試す場合はyを、終了する場合はnを入力してください");

		while(loop == true) {
			BufferedReader br =
				new BufferedReader(new InputStreamReader(System.in));

			String ans = br.readLine();

			if(ans.equals("y")) {
				System.out.println("はい");
				loop = false;
				q1();
			}
			else if(ans.equals("n")) {
				System.out.println("いいえ");
				System.out.println();
				System.out.println("ご利用ありがとうございました");
			}
			else {
				System.out.println("yかnを入力してください");
			}
		}

	}
}