본문 바로가기

Java/Codes

과제 1) 조건문, 반복문 사용하여 프로그램 만들기

버스정류장 위치를 검색하여 해당 버스정류장에 정차하는 버스를 검색하면 해당 버스의 배차시간을 알려주는 프로그램이다. 

package march;

import java.util.Scanner;

public class Bus_system {
	public static void main(String[] args) 
	{
		
		//버스정류장
		String bus_sta;
		String[] bus_station = {"Jinhae","Masan","Changwon"};
		
		//버스번호
		int bus_num;
		int[] bus_num_J = {155,757,860};
		int[] bus_num_M = {21,10,30};
		int[] bus_num_C = {103,109,127};

		
		//배차시간
		String bus_time;
		String[] BT1 = {"20~25","40~45","50~55"};
		String[] BT2 = {"10~15","30~45","20~40"};
		String[] BT3 = {"5~15","20~35","45~50"};


		System.out.println("<Bus Info System>");
		System.out.println("*Jinhae* *Masan* *Changwon*");
		
		while(true)
		{
			//어디 버스정류장 확인(없는 버스정류장이면 질문 반복)
			System.out.printf("Enter bus staion location : ");
			Scanner sc = new Scanner(System.in);
			Scanner ner = new Scanner(System.in);
			bus_sta = sc.nextLine();
			
			if(bus_sta.equals(bus_station[0]))//0=진해 선택, 문자열 타입 => equals
			{
				while(true)
				{
					System.out.println();
					System.out.println("Jinhae Selected");
					System.out.println();
					
					//버스 선택시  배차시간 확인(없는 버스면 질문 반복)
					System.out.println("*155,757,860*");
					System.out.printf("Enter bus number : ");
					bus_num = ner.nextInt();
					System.out.println();
					
					if(bus_num == bus_num_J[0])//정수타입 => 기호연산자( == )
					{
						System.out.printf("Bus %d dispatch time is "+ BT1[0] + " minutes\n", bus_num_J[0]);
						break;
					}
					else if(bus_num == bus_num_J[1])
					{
						System.out.printf("Bus %d dispatch time is "+ BT1[1] + " minutes\n", bus_num_J[1]);
						break;
					}
					else if(bus_num == bus_num_J[2])
					{
						System.out.printf("Bus %d dispatch time is "+ BT1[2] + " minutes\n", bus_num_J[2]);
						break;
					}
					else
					{
						System.out.println();
						System.out.println("[Error!]");
						System.out.println("Wrong Bus Number! Check Again!");
					}
						
				}
				break;
			}

			else if(bus_sta.equals(bus_station[1]))// 1=마산선택
			{
				while(true)
				{
					System.out.println();
					System.out.println("Masan Selected");
					System.out.println();
					
					//버스 선택시  배차시간 확인(없는 버스면 질문 반복)
					System.out.println("*21,10,30*");
					System.out.printf("Enter bus number : ");
					bus_num = ner.nextInt();
					System.out.println();
					
					if(bus_num == bus_num_M[0])//정수타입 => 기호연산자( == )
					{
						System.out.printf("Bus %d dispatch time is "+ BT2[0] + " minutes\n", bus_num_M[0]);
						break;
					}
					else if(bus_num == bus_num_M[1])
					{
						System.out.printf("Bus %d dispatch time is "+ BT2[1] + " minutes\n", bus_num_M[1]);
						break;
					}
					else if(bus_num == bus_num_M[2])
					{
						System.out.printf("Bus %d dispatch time is "+ BT2[2] + " minutes\n", bus_num_M[2]);
						break;
					}
					else
					{
						System.out.println();
						System.out.println("[Error!]");
						System.out.println("Wrong Bus Number! Check Again!");
					}
						
				}
				break;
			}
			
			else if(bus_sta.equals(bus_station[2]))//2=창원
			{
				while(true)
				{
					System.out.println();
					System.out.println("Changwon Selected");
					System.out.println();
					
					//버스 선택시  배차시간 확인(없는 버스면 질문 반복)
					System.out.println("*103,109,127*");
					System.out.printf("Enter bus number : ");
					bus_num = ner.nextInt();
					System.out.println();
					
					if(bus_num == bus_num_C[0])//정수타입 => 기호연산자( == )
					{
						System.out.printf("Bus %d dispatch time is "+ BT3[0] + " minutes\n", bus_num_C[0]);
						break;
					}
					else if(bus_num == bus_num_C[1])
					{
						System.out.printf("Bus %d dispatch time is "+ BT3[1] + " minutes\n", bus_num_C[1]);
						break;
					}
					else if(bus_num == bus_num_C[2])
					{
						System.out.printf("Bus %d dispatch time is "+ BT3[2] + " minutes\n", bus_num_C[2]);
						break;
					}
					else
					{
						System.out.println();
						System.out.println("[Error!]");
						System.out.println("Wrong Bus Number! Check Again!");
					}
						
				}
				break;
			}
			
			else
			{
				System.out.println();
				System.out.println("[Error!]");
				System.out.println("Location is over then changwon!");
				break;
			}
		}
		
		System.out.println("Thank you For using this service");
		
	}
}

 

결과값은 다음과 같이 출력된다.

 

<Bus Info System>
*Jinhae* *Masan* *Changwon*
Enter bus staion location : Jinhae

Jinhae Selected

*155,757,860*
Enter bus number : 757

Bus 757 dispatch time is 40~45 minutes
Thank you For using this service

 

클래스를 학습하면 좀 더 깔끔하게 프로그램을 다듬을 수 있을것 같다.