Java/JAVA의 정석_문제풀이

[6-21]연습문제 - 메서드

Jenny_yoon 2022. 11. 6. 13:39
728x90
반응형

[6-21] Tv클래스를 주어진 로직대로 완성하시오. 완성한 후에 실행해서 주어진 실행결과 와 일치하는지 확인하라.
[참고] 코드를 단순히 하기 위해서 유효성검사는 로직에서 제외했다.


 

풀이

1) isPowerOn의 값이 truefalse, falsetrue로 바꾼다.

 	void trunOnOff() { 
    	     isPowerOn= !isPowerOn; 
	}

!는 isPowerOn 앞에 붙인 것! (isPowerOn 은 isPowerOn과 값이 반대라는 뜻!)

 

2) volume의 값이 MAX_VOLUME보다 작을 때만 값을 1증가시킨다.

	void volumeUp() {
		if(volume < MAX_VOLUME) 
			volume++;
	}

 

3) volume의 값이 MIN_VOLUME보다 클 때만 값을 1감소시킨다.

	void volumeDown() {
		if(volume > MIN_VOLUME) 
			volume--;
	}

4) channel의 값을 1증가시킨다. 만일 channelMAX_CHANNEL이면, channel의 값을 MIN_CHANNEL로 바꾼다.

	void channelUp() {
		if(channel==MAX_CHANNEL) {
			channel = MIN_CHANNEL;}
		else {channel++; }
	}

5) channel의 값을 1감소시킨다. 만일 channelMIN_CHANNEL이면, channel의 값을 MAX_CHANNEL로 바꾼다.

	void channelDown() {
		if(channel == MIN_CHANNEL) {
			channel = MAX_CHANNEL;}
		else { channel--;}
	}

 

정답
package pkg1;

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;
	
	void trunOnOff() {
		isPowerOn= !isPowerOn;
		}
	void volumeUp() {
		if(volume < MAX_VOLUME) 
			volume++;
		}
	void volumeDown() {
		if(volume > MIN_VOLUME) 
			volume--;
		}
	void channelUp() {
		if(channel==MAX_CHANNEL) {
			channel = MIN_CHANNEL;}
		else {channel++; }
		}
	void channelDown() {
		if(channel == MIN_CHANNEL) {
			channel = MAX_CHANNEL;}
		else { channel--;}
	}	
}
public class Ex6_21 {
	public static void main(String[] args) {
		MyTv t = new MyTv();
		
		t.channel = 100;
		t.volume = 0;
		System.out.println("CH:"+t.channel+", VOL:"+ t.volume);
		
		t.channelDown();
		t.volumeDown();
		System.out.println("CH:"+t.channel+", VOL:"+ t.volume);
		
		t.volume = 100;
		t.channelUp();
		t.volumeUp();
		System.out.println("CH:"+t.channel+", VOL: "+ t.volume);
	}
}
728x90
반응형