[2021-06-28]Java
8일차 (복습)
프로젝트 1
평균값 계산기
파라미터로 정수 배열을 받고 배열의 모든 값의 평균(double)을 리턴해주는 메소드를 작성해보자
시작 전 큰 틀 짜기
평균값 계산기
파라미터로 정수 배열을 받고 배열의 모든 값의 평균(double)을 리턴해주는 메소드를 작성해보자
##메소드의 파라미터가 정수 배열 형태이니 int array[]꼴로 파라미터를 작성하면 될 것이다.
##리턴값 자료형이 double이므로 메소드의 큰 틀은
double function(int array[]){
}
의 꼴로 작성하면 될 것이다.
메소드 작성
계산 클래스 작성
public class AverageFinder {
double computeAverage(int[] intArray) {
//변수 선언
int i=0;
double sum=0;
double everage;
int arrayLength=intArray.length;
//while문 시작
while(i<arrayLength){
sum=sum+intArray[i];
i++;
}
//리턴값 설정
everage=sum/arrayLength;
return everage;
}
}
메소드 부분은 이렇게 작성해보았다
먼저, while문 안에서 돌아갈 변수들을 초기화해주고
나중에 리턴값에 쓰일 everage와 arrayLength 변수들도 선언해주었다.
메인 메소드 작성
public class Main {
public static void main(String[] args) {
AverageFinder finder = new AverageFinder();
// 테스트 1
int[] testArray1 = {3, 7, 3};
System.out.println(finder.computeAverage(testArray1));
// 테스트 2
int[] testArray2 = {1, 3, 4, 7};
System.out.println(finder.computeAverage(testArray2));
// 테스트 3
int[] testArray3 = {4};
System.out.println(finder.computeAverage(testArray3));
// 테스트 4
int[] testArray4 = {1, 2, 3, 4, 5};
System.out.println(finder.computeAverage(testArray4));
}
}
이렇게 메인 메소드를 구성해보았다.
테스트 결과
프로젝트 2
두 원소의 차중 최댓값 구하기
정수 배열을 파라미터로 받고 두 원소의 차 중 최댓값을 리턴해주는 메소드를 작성해보자
시작 전 큰 틀 짜기
## 두 원소의 차를 절댓값으로 나타내주는 Math.abs()를 활용하여 비교한다.
## 반복문 2개를 중첩으로 활용하여 두 원소를 빼주고 최대값을 다른 변수에 저장한다
## 끝까지 반복을 완료하면 최종 남아있는 최대값을 리턴시킨다
메소드 작성
계산 클래스작성
public class MaxFinder {
int MaxDifference(int[] intArray) {
// 코드를 입력하세요.
int i=0;
int max=0;
if(intArray.length<2){
return 0;
}
while(i<intArray.length-1){
int k=0;
while(i+k<intArray.length-1){
if(Math.abs(intArray[i]-intArray[i+k+1])>max){
max=Math.abs(intArray[i]-intArray[i+k+1]);
}else{
max=max+0;
}
k++;
}
i++;
}
return max;
}
}
원소의 개수가 1개인 배열은 0을 리턴시키게 만들었다
반복문을 중첩으로 사용하여 마치 배열을 하나하나 훑듯이 두 원소의 차이를 max값과 비교해주었다.
초기 max값을 0으로 설정해두었고 그 후로 더 큰 max값이 나오면 그 값을 max값에 넣어주는 형식이다.
메인 메소드 작성
public class Main {
public static void main(String[] args) {
MaxFinder finder = new MaxFinder();
// 테스트 1
int[] testArray1 = {-2, 7, 3};
System.out.println(finder.MaxDifference(testArray1));
// 테스트 2
int[] testArray2 = {8, 3, 14, 1};
System.out.println(finder.MaxDifference(testArray2));
// 테스트 3
int[] testArray3 = {4, 2, 3, 1};
System.out.println(finder.MaxDifference(testArray3));
// 테스트 4
int[] testArray4 = {};
System.out.println(finder.MaxDifference(testArray4));
// 테스트 5
int[] testArray5 = {1, 2, -3, 4, 5};
System.out.println(finder.MaxDifference(testArray5));
// 테스트 6
int[] testArray6 = {1};
System.out.println(finder.MaxDifference(testArray6));
}
}
테스트 결과
9
13
3
0
8
0
뒤늦게 깨달은 사실이지만 두 원소의 차이를 처음부터 비교하기 보다는
최댓값과 최솟값을 구한 후 마지막에 리턴값으로 (최댓값-최솟값)을 해주는 것이 더 좋은 코드인것같다
Author And Source
이 문제에 관하여([2021-06-28]Java), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@spider/2021-06-288일차-자바-공부저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)