자바 2주차 첫 번째 강사님의 마지막 문제 |
. 다음의 결과를 수행하는 프로그램을 완성하시오. int[] arrayOne = {10, 20, 13, 25}; int[] arrayTwo = {2, 5, 0, 3, 1, 7}; arrayOne, arrayTwo 두 개의 배열이 있다. 이 두 개의 배열은 정수를 저장하고 있으며, 서로 크기가 다르다. 두 개의 배열의 크기를 비교하여 더 큰 배열의 수만큼 for 반복문을 작성해 보자. 반복문을 수행하면서 arrayOne에 있는 숫자와 arrayTwo에 있는 숫자를 나눗셈 하도록 한다. 서로 같은 위치(같은 인덱스)에 있는 숫자끼리 나눗셈을 수행하고, 그 결과를 출력한다. 그리고 발생할 수 있는 에러 상황에 대해서 예외처리를 통해 프로그램이 비정상적으로 종료되지 않도록 해 보자. • 작성할 클래스명 : com.test.Test • Sample Run 10 / 25 20 / 54 나누기 연산 시 에러가 발생하였습니다. 25 / 38 인덱스 범위를 벗어나는 값에 접근하였습니다. |
package com.test05;
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
//서로 크기가 다른 두 배열
int[] one = { 10, 20, 13, 25};
int[] two = { 2, 5, 0, 3, 1, 7 };
// 길이가 더 긴 배열 사용
if(one.length < two.length) {
// 이중 for문을 이용해서 첫번째 배열과 두번째 배열을 값을 얻는다.
for (int i = 0; i < two.length; i++) {
for (int j = 0; j < two.length-1; j++) {
try {
// 서로 같은 인덱스를 가질 때만 값을 얻는다.
if (i == j) {
System.out.println(one[i]+"/"+two[j]+"= "+one[i] / two[i]);
} // byzero에 의한 오류로 에외처리
} catch (ArithmeticException e) {
System.out.println("나누기 연산오류");
// 배열 one의 인덱스 범위를 초과하기 때문에 발생 할 수 있는 문제 예외처리
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("인덱스 범위를 벗어나는 값에 접근하였습니다.");
}
}
}
}else {
System.out.println(" ");
}
}
}
실행 결과 |
코드를 작성하는 것에 있어서 아직 제대로 파악하지 못하고 막상 작성하려고 하면 기능적인 부분에서 활용하는것에 시간이 많이 걸리는 것 같다... 여러 코드들을 자꾸 보고 예제들을 작성해보고 프로그램도 만들어보면서 전체적인 흐름을 좀 더 수월하게 캐치할 수 있도록 노력하자!! |