일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 중학수학
- 선형회귀모델
- 요구사항확인
- 파이썬
- 핵심프로젝트
- 디버깅
- pandas
- 언리얼프로젝트
- 데이터분석
- 이수증
- C++
- 코딩테스트
- 데이터베이스
- Orange
- numpy/pandas
- 정보처리기사필기
- 자연수의성질
- JSP/Servlet
- 머신러닝
- 데이터시각화
- 텍스트마이닝
- 딥러닝
- 정보처리기사실기
- 선형분류모델
- 데이터입출력구현
- 자바
- html/css
- c언어
- 언리얼학습
- 자바 실습
- Today
- Total
클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지
메서드 10 - 메서드 기초 실습 본문
3시간 정도 놀았으니 이제 다시 공부를 할 때가 되었다. 하지만 쉽사리 마음이 움직여지지 않는다. 그래도 억지로라도 해야 할 것이다. 이제 클래스에 대한 학습을 본격적으로 시작해보려고 한다.
여기까지 오기까지 얼마나 힘들었는지 모른다. 먼저 엘리스로 학습을 시작해본다.
원래는 클래스 학습을 시작하려고 했지만 아직 메서드도 잘 모르는 것 같아 이 부분을 한번 더 복습하고 넘어가기로 했다. 뭐든 빨리 진도를 빼는 게 중요한 게 아니다. 모르면 될 때까지 다시 학습하고 또 학습하는 것이 더 중요한 것 같다.
실습 1 - 메서드 사용해보기
입력 받은 수의 제곱 값을 출력하는 프로그램 만들기
사실 엘리스에서 풀 때는 주어지는 예제가 많아서 쓸 게 별로 없었다. 그래서인지 무슨 문제인지 파악하지도 못한채 답만 맞추기 바빴던 것 같다. 이번에 처음부터 코드를 직접 써보니 확실히 이해가 되었다.
메소드는 main 함수보다 앞에 있어야 했다. return에는 반환되는 값을 적어주는데 여기서는 제곱수로 반환할 것이니 이렇게 써준다. 그리고 출력할 때 이 부분이 좀 헤깔렸는데, 함수를 그대로 써야 한다. 매개변수까지..
이 예제는 매개변수와 리턴 타입이 모두 있는 유형이었다.
실습 2 - 반환값이 없는 메소드
입력된 정수 값만큼 Hello, Elice!를 반복하여 출력한다.
앞의 예제에서는 println 안에 출력할 함수를 불러왔다. 근데 여기서는 이렇게 쓰자 오류가 표시된다. 왜 그럴까? 전에 학습할 때는 이러한 차이점도 느끼지 못했다.
여기서 발생한 오류는 printHello 메소드가 반환값이 없는 void 메소드임에도 불구하고, main 메소드에서 System.out.println(printHello(n));로 호출한 후 결과를 출력하려고 한 것입이다. printHello 메소드는 단지 출력을 수행하고, 값을 반환하지 않으므로 System.out.println()으로 출력할 필요가 없다.
전의 코드는 int가 써져있는 정수로 반환하는 메소드였으나, 이건 void이므로 반환값이 없다. 그러니 출력문을 쓸 때 println을 쓰면 안 되고, 그냥 바로 함수 이름만 쓰면 된다.
5를 입력했더니 문장이 5번 출력되었다.
실습 3 - 매개변수가 없는 메소드
입릭 받은 정수만큼 1부터 100 사이의 정수를 무작위로 반환한다.
이 문제는 반환값은 있고 매개변수가 없다. 반환값이 없기에 랜덤 수로 무작위로 아무 숫자를 불러올 수 있고, 매개변수는 정수를 하나 받는 것으로 했다.
이 역시 엘리스 프로그램으로 풀어볼 때는 미쳐 알지 못했던 부분이었다. 이제 확실히 이해할 수 있어서 기쁘다!
실습 4 - 사칙 연산
매개변수 2개를 입력 받아 사직 연산 메소드를 만들어본다.
원래 문제에는 다른 수였지만 숫자를 바꾸어보았다. 그리고 int로 만 연산이 되어있던 나눗셈도 함수를 실수 연산이 가능하도록 했다. 하지만 원래대로라면 나눗셈은 3.3이 되어야 한다. 매개변수를 int하자 연산은 그대로 하고 여기에 실수라는 형태만 바뀐 것 같다.
매개변수를 double로 바꾸어보기도 하고 이처럼 형변환을 해도 소숫점이 너무 많이 나온다. 첫째 자리만 나오게 하려면 어떻게 해야 할까?
printf 함수를 사용하면 이렇게 나타낼 수 있다. C 언어에서만 사용하는줄 알았는데 자바에서도 쓸 수 있었다. 한 가지 또 배웠다. 처음에는 이 계산을 할 때 +, - 등의 연산 기호를 붙였으나 메소드에서는 매개변수만 쓰고 ,로 구분하면 되었다.
학습을 마치고
아직 클래스 공부를 하기에 미진한 것 같아 메소드 복습을 하는데 정말 좋았다. 사실 난 메소드를 아직 잘 모르고 있다는 걸 알게 되었다. 여기에 훨씬 더 어려운 클래스를 배운다면 더 이해하기 어려울 것 같았다.
메소드가 무엇인지 어떻게 만드는지 알 것 같다.
'프로그래밍 언어 > 자바' 카테고리의 다른 글
메서드 12 - 완전수 구하는 5단계 다시 한번 풀어보기 (0) | 2024.08.15 |
---|---|
메소드 11 - 사칙연산과 큰 수 비교 실습하기 (0) | 2024.08.15 |
반복문과 배열 그리고 예외 처리 27 - 연습문제 실습편 풀어보기 4 : 14~16번 문제 (0) | 2024.08.15 |
반복문과 배열 그리고 예외 처리 26 - 연습문제 실습편 풀어보기 3 : 11~13번 문제 (0) | 2024.08.15 |
반복문과 배열 그리고 예외 처리 25 - 연습문제 실습편 풀어보기 2 : 6~10번 문제 (0) | 2024.08.15 |