본문 바로가기

자바

Day13

자바 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(" ");
		}				
	}
}

 

 

 실행 결과

코드를 작성하는 것에 있어서 아직  제대로 파악하지 못하고 막상 작성하려고 하면 기능적인 부분에서 활용하는것에 시간이 많이 걸리는 것 같다... 여러 코드들을 자꾸 보고 예제들을 작성해보고 프로그램도 만들어보면서 전체적인 흐름을 좀 더 수월하게 캐치할 수 있도록 노력하자!! 

'자바' 카테고리의 다른 글

Day 16  (0) 2021.05.26
Day14  (0) 2021.05.24
Day12  (0) 2021.05.20
Day11  (0) 2021.05.18
Day10-1  (0) 2021.05.17