KOSTA

KOSTA 교육 (메소드, 배열, 정렬, 변수, 데이터타입, 형변환, 연산자, if/else, switch)

코린이 연대기 2021. 2. 8. 21:19

 

배운 내용

  • 메소드(Method)
  • 배열(Array)

 

1. Method(메소드)

메소드는?

클래스 내에 존재하는 함수를 말한다.
여기서 메소드의 특징으로는,

  • 중복된 코드를 최소화 하는 효과가 있다
  • 유지보수가 수월해진다.
  • 메소드 이름을 통해 메소드를 호출한다.
  • 변수 = 메소드이름(파라미터1, 파라미터2, 파라미터3); 형식이다.

 

메소드를 생성시 가장 주의할 점으로는

  • 호출시 파라미터의 데이터를 일치시켜야한다.

 

메소드 예시를 보면서 공부해보자

 

  • 어떠한 정수 2개를 더하기 위한 예시로서 int를 사용하여 add라는 메소드이름 그리고 2개의 정수 파라미터를 설정하였다.
  • sum 변수를 추가하여 두개의 정수 파라미터를 더하기 실행해준다.
  • 이 sum값을 리턴한다.
  • main메소드에서 이 값을 출력하기위해 result 변수를 실행하고 더하기연산을 진행하여 결과값을 도출한다. 값은 7

 

  • 각 과목별 점수를 키보드로 입력을 받아야 하기 때문에 main메소드에 먼저 스캐너를 통해 입력값 실행을 한다.
  • 총점과 평균을 구하기 위해 각각 add, avg 정수 메소드를 만들고 각 과목 파라미터를 설정한다.
  • 변수를 설정 후 연산식을 대입해준 후 리턴한다.
  • main메소드에 add, avg 출력을 위한 변수를 선언하고 add, avg와 파라미터 변수값을 실행하여 출력한다.

 

  • 키보드로 입력받아야 하기 때문에 Scanner를 사용한다. getInput을 사용하여 출력할 예정이기 때문에 num변수를 리턴한다.
  • 총점을 구하기 위해 getTotal메소드를 사용하여 리턴, 평균은 getAverage메소드를 사용하여 리턴한다.
  • main메소드에서 해당 변수를 0으로 추가하고 호출할 과목을 getInput로 호출한다
  • 총합, 합계 변수를 메소드, 파라미터를 적용하여 출력값을 출력한다.

2. 배열

배열은?

여러개의 데이터 값을 하나의 데이터로 모아 사용한다.
배열의 특징

  • 많은 변수들을 하나의 변수로 해결할 수 있다.
  • 주소값이 있다면 언제든 그 주소를 사용할 수 있다.
  • reference = 참조 = 주소값
  • [] -> 배열을 의미

 

배열의 단점

  • 한가지의 데이터타입 밖에 넣을 수 밖에 없다.
  • 한 번 생성 하면 더 이상 늘어나지 않는다.

 

예시를 보며 배열을 공부해보자

 

  • 배열을 선언할 때의 종류는 3가지가 있다.
  • 향상된 for문을 이용하여 배열을 출력할 수 있다.
  • 배열을 풀이할 시 4단계에 나누어서 풀이하면 수월하게 풀이가 가능하다.

 

  • arr[] 배열에 9라는 주소값을 실행하였다.
  • for문을 이용하여 i 변수를 0으로 실행한다. i의 조건값을 arr.length로 실행한다. 여기서 length는 arr의 크기를 말한다.
  • 여기서 arr[i] arr배열의 순서를 나타낸다. 예를들어 arr[0]은 첫 번째이고 arr[6]은 일곱 번째이다.
  • 0부터 시작할 때 7 * 1이 나와야하기 때문에 i에 1을 더하고 실행한다.

 

  • 사람 수, 키를 입력하기 위해서 변수 2개를 실행한다.
  • 사람 수를 입력해야 하므로 Scanner를 이용하여 값을 입력한다.
  • 입력한 사람 수대로 키를 입력하기 때문에 for문을 사용하여 반복한다.
  • 추가로 최대값을 구할 maxOf를 만들어 새로운 maxkey 변수를 실행한다.
  • 변수를 최대값으로 리턴하여 출력해야하기 때문에 for문을 사용하여 최대값을 구하기 위해 if문을 추가하였다.
  • 리턴하여 key변수로 최대값을 호출하고 출력한다.

 

  • 5가지의 int배열을 생성, 3가지의 String배열을 생성한다.
  • for문을 이용하여 국어, 영어, 수학이 반복될 수 있도록 실행한다.
  • score[3]은 총점이기 때문에 score[2]까지 전부 더해주면 총점이 된다.
  • 총점을 출력하고 score[4]는 평균이므로 score[3]을 3으로 나누어주면 값이 도출된다.

배운 내용

 

  1. 배열
  2. 배열복사
  3. 정렬
  4. swap

1. Array(배열)

배열은?

여러개의 데이터 값을 하나의 데이터로 모아 사용한다.
배열의 특징

  • 많은 변수들을 하나의 변수로 해결할 수 있다.
  • 주소값이 있다면 언제든 그 주소를 사용할 수 있다.
  • reference = 참조 = 주소값
  • [] -> 배열을 의미

 

배열의 단점

  • 한가지의 데이터타입 밖에 넣을 수 밖에 없다.
  • 한 번 생성 하면 더 이상 늘어나지 않는다.

 

어제도 배열을 배웠지만 중요한 부분이기도 하고 숙달이 필요한 부분이기 때문에 추가로 학습하였다.

 

  • 먼저 arr3 배열을 1~5로 바로 생성한다.
  • 배열 안 정수 1과 2의 위치를 바꾸기 위해서 swap이라는 메소드를 만든다.
  • 배열에 위치한 2개 idx1,2 의 변수를 선언하고 temp를 활용해 idx1를 삽입, 빈 idx1에 idx2를 삽입하고 idx2 자리에 temp에 넣어둔 idx1을 삽입하여 위치를 바꾸어준다.
  • swap메소드를 main메소드에 호출하고 for문을 이용하여 배열을 출력한다.

 

  • 1~5까지 선언된 배열을 5~1 순으로 swap 해야한다.
  • 먼저 swap 하기 위한 반복을 해야하니 for문을 사용하여 0부터 2까지 반복하게끔 실행한다. 이유는 3은 위치를 바꿀 필요가 없기 때문이다.
  • arr.length에 0일 때 4, 1일때 3과 바꾸어야 하기 때문에 -1를 넣어준다.
  • 이제 출력을 하기 위해 arr[0]부터 arr[4]까지 출력시켜준다.

 

이제 알아볼 배열은 2차원 배열이다. 1차원과는 다르게 이해하기 난해하고 이중for문을 사용해야하는 등 복잡한 계산이 많아진다.

 

  • 2차원 배열을 선언하는 방법으론 예제에 설명한 총 3가지 방법과 같다.
  • 여기서 동시에 실행하는 방법을 풀이해보면, 저기서 나타낸 큰 중괄호 안에 3개의 중괄호는 1차 배열이라고 생각하면 된다. 1차 배열이라는 가방 안에, 2차 배열에 해당되는 숫자들이 들어간 공들이 있다고 생각하면 된다.
  • 2차 배열을 출력하기 위해선 이중 for문을 이용하여 i값을 1차 배열을 불러 0부터 2까지 반복하게 하고, 2차 배열을 j값으로 선언한 후 1차 배열 안의 2차 배열값을 불러내야하므로 arr[i].length로 선언한다.
  • arr[i][j]로 출력하면 숫자들이 출력될 것이다.

 

  • 먼저 준비된 사항은 키보드입력, String으로 각 과목, 총점, 평균을 구하라는 배열이다.
  • 2차원 배열을 만들 때 학생이 2명이니 1차원에 2를, 5가지가 출력이 되어야 하니 2차원에 5를 선언한다.
  • 배열을 초기화 하는 과정으로 이중 for문을 이용하여 i는 학생이므로 3보다 작게, j는 세 과목을 입력해야 하므로 3보다 작게 선언한다.
  • Scanner를 이용하여 arr[i][j]로 학생별 과목 입력을 키보드로 실행하고 입력받는다.
  • 이제 총점을 입력받기 위해 총점은 arr[i][]의 arr[][3]에 위치하고 있으므로 arr[i][3] += arr[i][j] 로 선언한다.
  • 평균을 입력받으려면 총점에서 /3을 해주면 되기 때문에 arr[i][4] = arr[i][3]/3 이다.
  • 값을 다 구했으니 출력을 하기 위해 이중 for문을 이용하여 출력한다.