[문제]
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전원이 꺼져있습니다. 전원을 확인하세요.");
}
}
}