[4 - 21]
1. 문제설명
2. 나의 해답
package ex6_21;
public class Exercise6_21 {
public static void main(String[] args) {
// TODO Auto-generated method stub
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);
}
}
package ex6_21;
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;
void turnOnOff() {
// (1) isPowerOn의 값이 true면 false로, false면 true로 바꾼다.
if(isPowerOn == true)
isPowerOn = false;
else
isPowerOn = true;
}
void volumeUp() {
// (2) volume의 값이 MAX_VOLUME보다 작을 때만 값을 1증가시킨다.
if(volume < MAX_VOLUME)
volume++;
}
void volumeDown() {
// (3) volume의 값이 MIN_VOLUME보다 클 때만 값을 1감소시킨다.
if(volume < MIN_VOLUME)
volume--;
}
void channelUp() {
// (4) channel의 값을 1증가시킨다.
// 만일 channel이 MAX_CHANNEL이면, channel의 값을 MIN_CHANNEL로 바꾼다.
if(channel == MAX_CHANNEL)
channel = MIN_CHANNEL;
else
channel ++;
}
void channelDown() {
// (5) channel의 값을 1감소시킨다.
// 만일 channel이 MIN_CHANNEL이면, channel의 값을 MAX_CHANNEL로 바꾼다.
if(channel == MIN_CHANNEL)
channel = MAX_CHANNEL;
else
channel--;
}
} // class MyTv
콘솔
CH:100, VOL:0
CH:99, VOL:0
CH:100, VOL:100
3. 정답 코드
isPowerOn = !isPowerOn;
이거 추가
4. 보충 및 회고
(1) 보충
(2) 회고 : 문제풀이과정에서 어떻게 접근하려고했는지 (접근방법) + 어려움이 있었는데 해결했다.
1) 풀이과정에서 큰 어려움은 없었다.
2) 다만 하나 배운점이 있다.
true 에서 false로 전환할때 조건문으로 대입할 필요없이 서로 상반되게 작동되도록 하면된다.
호출될 때마다 값을 전환시키는 것은 위 정답코드를 참고하면 좋을 것 같다.
비단 부울대수외에도 정수나 실수도 음수로 전환할때 이용하면 유용하게 이용할수 있을것 같다.
'문제풀이 > 자바' 카테고리의 다른 글
TIL - 자바의정석 연습문제[ch6 - 23] (0) | 2023.01.07 |
---|---|
TIL - 자바의정석 연습문제[ch6 - 22] (0) | 2022.12.30 |
TIL - 자바의정석 연습문제[ch6 - 20] (0) | 2022.12.30 |
TIL - 자바의정석 연습문제[ch6 - 5] (0) | 2022.12.27 |
TIL - 자바의정석 연습문제[ch6 - 3,4 ] (0) | 2022.12.27 |