자바의 정석 6장 (15일차) - 메서드 생성 예시문제2

728x90

TV 리모컨 메서드 작성 예시

channelup, channeldown, volumeup, volumedonw 메서드를 작성하여 main 함수안에 print문으로 출력함

final 상수 값을 지정하여 최대 채널값, 최소 볼륨값을 넘어가면 변동이 안되도록 조건문 삽입

	public static void main(String[] args) {
		
		MyTV tv = new MyTV();
		tv.channel = 100;
		tv.volume = 0;
		System.out.println("CH: " + tv.channel + " VOL: " + tv.volume);
		
		tv.channelup();
		tv.volumedown();
		System.out.println("CH: " + tv.channel + " VOL: " + tv.volume);
	
		tv.channeldown();
		tv.volumeup();
		System.out.println("CH: " + tv.channel + " VOL: " + tv.volume);
		
//		출력값
//		CH: 100 VOL: 0
//		CH: 100 VOL: 0
//		CH: 99 VOL: 1
	}
}

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 turnoff(){
		isPoweron =! isPoweron;
	}
	void volumeup() {
		volume = volume<MAX_VOLUME ? ++volume : volume;
	}
	void volumedown() {
		volume = volume<MIN_VOLUME ? --volume : volume;
	}
	void channelup() {
		channel = channel == MAX_CHANNEL ? channel = MAX_CHANNEL : ++channel;
//		channel 변수에 변형된 값을 미리 대입해야되기 때문에 전위연산자를 써줘야 작동이 잘된다
	}
	void channeldown() {
		channel = channel == MIN_CHANNEL ? channel = MIN_CHANNEL : --channel;
//		위와 동일함		
	}
}

 큰 값 출력 메서드

주어진 값에서 제일 큰 값 출력, 값이 0이거나 공백인 array일 경우 -999999 반환

	public static void main(String[] args) {
			int[] i = {};
			cal.maxcal(i);
	}
}
// 주어진 값에서 제일 큰 값 출력, 값이 0이거나 공백인 array일 경우 -999999 반환
	
class cal{
	
	static void maxcal(int[] i) {
		int	iMAX = 0;
		for(int items : i) {
			iMAX = Math.max(items, iMAX);
		}
		if(iMAX != 0) {
			System.out.println(iMAX); 
		}
		else {	
			System.out.println(-999999);
		}
	}
}

절대값 출력 

매개변수 2개를 지정해서 각각의 절대값 출력하기

출력문:

  • 5의 절대값은 5이고 -10의 절대값은 10입니다.
	public static void main(String[] args) {
			int i = 5, j = -10;
			cal.abs(i, j);;
	}
}
// 주어진 값의 절댓값 반환
	
class cal{
	
	static void abs(int a, int b) {
		int A = Math.abs(a);
		int B = Math.abs(b);
		System.out.printf("%d의 절대값은 %d이고 %d의 절대값은 %d입니다.", a, A, b, B);
	}
}
728x90