728x90

Assert는  값이 false일때 임의로 에러를 발생시키는 코드이다.

프로그램을 만드는 중간에 제대로 작동하는지 확인? 하는 역활로 사용할 수 있다.

제곱승을 구하는 프로그램을 만들어보자

package class_constructor02;

import java.util.Scanner;

public class Assert {
	private int x, y;
	
	public void input() {
		Scanner sc = new Scanner(System.in);
		System.out.print("x 입력 : ");
		x = sc.nextInt();
		System.out.print("y입력 : ");
		y = sc.nextInt();
	}
	
	public void output() {
		
		int result = 1;
		for(int i=1 ; i<=y; i++) {
			result *= x;
		}
		System.out.println(x+"의 "+y+"승은 "+result);
	}

	public static void main(String[] args) {
		Assert a = new Assert();
		a.input();
		a.output();

	}

}

a메인 메소드에 전부 작성하지 않고 input()과 output()을 이용해 만들었다.

x는 숫자 y는 몇번 제곱할건지 받는건데 y값에 음수가 들어오면 결과는 무조건 -1이 나온다.
근데 y에 음수가 들어오면 false이기 때문에 

Assert을 이용해 y에 음수가 들어가서 false가 나오면 에러가 나오게 만들어보자

public void output() {
		//y는 반드시 양수만 입력받도록 하겠다
		assert y>=0;
		
		int result = 1;
		for(int i=1 ; i<=y; i++) {
			result *= x;
		}
		System.out.println(x+"의 "+y+"승은 "+result);
	}

간단하게 제곱하는 메소드인 output()의 가장 첫줄에 조건을 넣으면된다
assert y>=0; 을 작성하면 y가 양수이면 true로 그냥 지나치고
y에 음수가 들어오면 false로 에러가 뜬다.

근데 그냥 run을 하면 에러메세지가 나오지않고 1이 나온다.
사전 작업을 해줘야 한다.

이렇게 사진의 순서대로 들어가서 작업을 해주고 Run을 하고 값을 입력하면 된다.

 

여기서 에러메세지에 문구를 넣고 싶으면

assert y>=0 : "y는 0보다 크거나 같아야 한다";

이 줄에 이렇게 메세지를 입력하면 된다. 
그리고나서 에러가 나오면

이렇게 출력해준다.

728x90

'JAVA' 카테고리의 다른 글

10/13수업  (0) 2020.10.13
(월요일에 복습하기)CalendarMain(캘린더) 만들기, Today  (0) 2020.10.11
객체배열 숙제 10/07  (0) 2020.10.07
DecimalFormat(숫자 형식 클래스)  (0) 2020.10.01
가변인자 varArgs  (0) 2020.09.29

+ Recent posts