[문제]

  1. TV 전원을 켭니다.
  2. TV 전원이 켜져 있다면 다시 켤 수 없습니다.
  3. 채널을 올리면 1씩 증가하고, 채널을 내리면 1씩 감소합니다.
  4. 채널은 1번 ~ 100번까지 존재합니다. TV 전원이 꺼져있다면 먼저 켠 후에 채널업,다운을 합니다.
  5. 볼륨을 올리면 1씩 증가하고, 볼륨을 내리면 1씩 감소합니다.
  6. 볼륨은 0 ~ 100 까지 입니다. TV 전원이 꺼져있다면 먼저 켠 후에 볼륨업, 다운을 합니다.
  7. TV를 다 본 뒤에는 전원을 끄게 됩니다.
package practice02;

import java.util.Scanner;

public class Exercise4 {
	public static void main(String[] args) {

		MyTv tv = new MyTv();
		
		Scanner sc = new Scanner(System.in);
		
		do {
			System.out.println("========= TV 프로그램 =========");
			System.out.println("1. 전원 켜기");
			System.out.println("2. 채널업");
			System.out.println("3. 채널다운");
			System.out.println("4. 볼륨업");
			System.out.println("5. 볼륨다운");
			System.out.println("8. 전원 끄기");
			System.out.println("9. TV프로그램 종료");
			System.out.print("메뉴 선택: ");
			int no = sc.nextInt();
			
			switch(no) {
			  case 1: tv.turnOn(); break;
			  case 2: tv.channelUp(); break;
			  case 3: tv.channelDown(); break;
			  case 4: tv.volumeUp(); break;
			  case 5: tv.volumeDown(); break;
			  case 8: tv.turnOff(); return;
			  case 9: System.out.println("TV프로그램을 종료합니다."); break;
			  default: System.out.println("잘못된 번호를 선택하셨습니다.");
			}
		} while(true);
	}
}
package practice02;

public class MyTv {

	boolean isPowerOn;					// 전원 온, 오프
	int channel;						// 채널번호
	int volume;							// 볼륨 크기
	
	final int MAX_VOLUME = 100;			// 볼륨 최대값
	final int MIN_VOLUME = 0;			// 볼륨 최소값
	final int MAX_CHANNEL = 100;		// 채널 최대값
	final int MIN_CHANNEL = 1;			// 채널 최소값
	
	public void turnOn() {
		
		/*
		 * 전원이 켜져 있으면 할 일이 없고,
		 * 전원이 꺼져 있으면 전원을 켜야 할 것이다.
		 */
		if(isPowerOn) {							// 전원이 켜져 있는 상태
			System.out.println("이미 전원이 켜져 있습니다.");
		} else {								// 전원이 꺼져 있는 상태
			isPowerOn = true;
			System.out.println("TV 전원을 켭니다.");
		}
	}
	
	public void turnOff() {
		
		/*
		 * 전원이 꺼져 있으면 할 일이 없고,
		 * 전원이 켜져 있으면 전원을 꺼야 할 것이다.
		 */
		if(isPowerOn) {							// 전원이 켜져 있는 상태
			System.out.println("TV를 끕니다. 다시 보려면 전원을 켜세요.");
		} else {								// 전원이 꺼져 있는 상태
			System.out.println("TV가 이미 꺼져있습니다. 전원을 확인하세요.");
		}
	}
	
	public void channelUp() {
		
		/*
		 * 전원이 켜져 있다면, 채널을 올리면 1칸씩 올라갈 것이다.
		 * 100번에서 채널업을 하면, 1번으로 갈 것이다.
		 * 전원이 꺼져 있다면, 전원을 먼저 켜야 할 것이다.
		 */
		if(isPowerOn) {							// 전원이 켜져 있는 상태
			if(channel < MAX_CHANNEL) {			// 채널이 최대번호인 100번보다 작은지 판단
				channel++;
				System.out.println("채널이 올라갑니다.");
				System.out.println("현재 채널은 " + channel + "번입니다.");
			} else {							// 채널이 100번보다 크거나 갈을 때
				channel = MIN_CHANNEL;			// 채널이 1번으로 이동
				System.out.println("100번 채널까지 있으므로 1번으로 이동합니다.");
			}
		} else {								// 전원이 꺼져 있는 상태
			System.out.println("TV전원이 꺼져있습니다. 전원을 확인하세요.");
		}
	}
	
	public void channelDown() {
		
		/*
		 * 전원이 켜져 있다면, 채널을 내리면 1칸씩 내려갈 것이다.
		 * 1번에서 채널다운을 하면, 100번으로 갈 것이다.
		 * 전원이 꺼져 있다면, 전원을 먼저 켜야 할 것이다.
		 */
		if(isPowerOn) {							// 전원이 켜져 있는 상태
			if(channel > MIN_CHANNEL) {			// 채벌이 최소번호인 1번보다 큰지 판단
				channel--;
				System.out.println("채널이 내려갑니다.");
				System.out.println("현재 채널은 " + channel + "번입니다.");
			} else {							// 채널이 1번보다 작거나 같을 때
				channel = MAX_CHANNEL;			// 채널이 100번으로 이동
				System.out.println("0번 채널이 없으므로 100번으로 이동합니다.");
			}
		} else {								// 전원이 꺼져 있는 상태
			System.out.println("TV전원이 꺼져있습니다. 전원을 확인하세요.");
		}
	}
	
	public void volumeUp() {
		
		/*
		 * 전원이 켜져 있다면, 볼륨을 올리면 1칸씩 올라갈 것이다.
		 * 100에서 볼륨업을 하면, 더 이상 올라가지 않는다.
		 * 전원이 꺼져 있다면, 전원을 먼저 켜야 할 것이다.
		 */
		if(isPowerOn) {							// 전원이 켜져 있는 상태
			if(volume < MAX_VOLUME) {			// 볼륨이 최대인 100보다 작은지 판단
				volume++;
				System.out.println("볼륨이 올라갑니다.");
				System.out.println("현재 볼륨은 " + volume + "입니다.");
			} else {							// 볼륨이 100보다 크거나 같을 때
				volume = MAX_VOLUME;			// 볼륨은 100보다 올라갈 수 없다. 100으로 표시
				System.out.println("볼륨이 최대인 100입니다. 더 이상 올릴 수 없습니다.");
			}
		} else {								// 전원이 꺼져 있는 상태
			System.out.println("TV전원이 꺼져있습니다. 전원을 확인하세요.");
		}
	}
	
	public void volumeDown() {
		
		/*
		 * 전원이 켜져 있다면, 볼륨을 내리면 1칸씩 내려갈 것이다.
		 * 0에서 볼륨다운을 하면, 더 이상 내려가지 않는다.
		 * 전원이 꺼져 있다면, 전원을 먼저 켜야 할 것이다.
		 */
		if(isPowerOn) {							// 전원이 켜져 있는 상태
			if(volume > MIN_VOLUME) {			// 볼륨이 최소인 0보다 큰지 판단
				volume--;
				System.out.println("볼륨이 내려갑니다.");
				System.out.println("현재 볼륨은 " + volume + "입니다.");
			} else {							// 볼륨이 0보다 작거나 같을 때
				volume = MIN_VOLUME;			// 볼륨은 0보다 내려갈 수 없다. 0으로 표시
				System.out.println("음소거 상태입니다. 더 이상 줄일 수 없습니다.");
			}
		} else {								// 전원이 꺼져 있는 상태
			System.out.println("TV전원이 꺼져있습니다. 전원을 확인하세요.");
		}
	}	
}