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 |