나도코딩 자바 기본편_12일차(24.12.02)
#031 <퀴즈 5>
-배열을 활용하여 쇼핑몰에서 구매 가능한 신발 사이즈 옵션 출력 프로그램을 작성하시오.
-조건
1) 신발 사이즈는 250부터 295까지 5 단위로 증가
2) 신발 사이즈 수는 총 10가지
-실행 결과
사이즈 250 (재고 있음)
사이즈 255 (재고 있음)
...
사이즈 295 (재고 있음)
내 코드
int[] size = {250, 255, 260, 265, 270, 275, 280, 285, 290, 295};
for (int i = 0; i < 10; i++) {
System.out.println("사이즈 " + size[i] + " (재고 있음)");
}
선생님 코드
int[] sizeArray = new int[10]; → 배열의 사이즈 (10)
for (int i = 0; i < sizeArray.length; i++) { → 배열의 길이만큼 반복
sizeArray[i] = 250 + (5 * i); → 250부터 5 단위로 커짐
}
for (int size : sizeArray) {
System.out.println("사이즈 " + size + " (재고 있음)");
}
#032 <메소드>
-메소드
특정한 기능을 수행하는 코드들의 묶음 (함수와 비슷함)
1) 메소드 정의
public static void sayHello() {
System.out.println("안녕하세요? 메소드입니다.");
}
2) 메소드 호출
System.out.println("메소드 호출 전");
sayHello(); → 메소드 안에 있는 문장 실행하고 다음으로 넘어감
sayHello(); → 여러 번 실행도 가능
sayHello();
System.out.println("메소드 호출 후");
#033 <전달값 (Parameter)>
1) 전달값이 있는 메소드
public static void power(int number){ → number: parameter (매개변수)
int result = number * number;
System.out.println(number + " 의 2 승은 " + result);
}
2) 전달값이 두 개인 메소드
public static void powerByExp(int number, int exponent){
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= number; → result = result * number
}
System.out.println(number + " 의 " + exponent + " 승은 " + result);
}
3) 출력
public static void main(String[] args) {
// parameter, 전달값
// 2 → 2 * 2 = 4
// 3 → 3 * 3 = 9
// Argument, 인수 (소괄호 안)
power(2); → 2 * 2 = 4
power(3); → 3 * 3 = 9
powerByExp(2, 3); → 2 * 2 * 2 = 8 (2의 3 승은 8)
powerByExp(3, 3); → 3 * 3 * 3 = 27 (3의 3 승은 9)
powerByExp(10, 0); → 1 (10의 0 승은 1)
#034 <반환값 (Return)>
1) 반환값이 있는 메소드
// 호텔 전화번호
public static String getPhoneNumber() {
String phoneNumber = "02-1234-5678";
return phoneNumber;
}
// 호텔 주소
public static String getAdress() {
return "서울시 어딘가"; → 변수 정의하지 않고 바로 값 반환할 수 있음
}
// 호텔 액티비티
public static String getActivities() {
return "볼링장, 탁구장, 노래방";
}
2) 출력
// 호텔 전화번호
String contactNumber = getPhoneNumber();
System.out.println("호텔 전화번호 : " + contactNumber);
// 호텔 주소
String adress = getAdress();
System.out.println("호텔 주소: " + adress);
// 호텔 액티비티
System.out.println("호텔 액티비티 : " + getActivities()); → 메소드 호출과 동시에 반환
#035 <전달값과 반환값>
1) 전달값과 반환값이 있는 메소드
// 제곱 메소드
public static int getPower(int number) {
int result = number * number;
return result; → return number * number (한 줄로 줄일 수 있음)
}
// number 를 exponent 번 곱하는 메소드
public static int getPowerByExp(int number, int exponent) {
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= number; → result = result * number
}
return result;
}
2) 출력
// 제곱 메소드
int retVal = getPower(2);
System.out.println(retVal); → 2 * 2 = 4
retVal = getPower(3);
System.out.println(retVal); → 3 * 3 = 9
// number 를 exponent 번 곱하는 메소드
retVal = getPowerByExp(3, 3);
System.out.println(retVal); → 3 * 3 * 3 = 27
System.out.println(getPowerByExp(2, 4)); → 2 * 2 * 2 * 2 = 16
오늘의 한마디
퀴즈 5를 또 지저분하게 풀었다... 선생님 방식대로 풀어 보려고(배열 전부 늘어놓지 않고 for문 이용해서 깔끔하게!) 이렇게 저렇게 시도해 봤는데 결국 다 실패하고 (흑흑) 이게 아니란 걸 알면서도 일단 실행 결과만 똑같이 나오게 만들었다. 어제 자바 좀 재밌는 것 같다고 입방정을 떨어서일까? 오늘은 공부하는 게 좀 힘들었다. 엄청 어려운 내용도 아니었는데 집중이 안 돼서 강의 듣다 고구마 굽고... 퀴즈 풀다 화장실 청소하고 그랬다. 이제 딱 4강만 더 들으면 기본편 끝인데...! 오늘은 일찍 자고 완강의 영광은 내일로 넘겨야겠다. 배운 내용이 차곡차곡 쌓일수록 걱정도 쌓인다. 이걸 다 외워서 쓰는 게 아니라고는 하지만... 뭐가 너무 많아서 막막해진다. 오늘은 일찍 자자. 걱정과 불안은 꿈속에 다 던져버리고 와야지.
'공부를 하자! > 나도코딩 자바 기본편' 카테고리의 다른 글
[나도코딩 자바 기본편] 14일차: 퀴즈6 (0) | 2024.12.09 |
---|---|
[나도코딩 자바 기본편] 13일차: 메소드 오버로딩, 메소드가 필요한 이유, 변수의 범위, Main 메소드 (3) | 2024.12.09 |
[나도코딩 자바 기본편] 11일차: 다차원 배열 순회, 아스키 코드 (0) | 2024.12.02 |
[나도코딩 자바 기본편] 10일차: 배열, 배열 순회, 다차원 배열 (0) | 2024.12.01 |
[나도코딩 자바 기본편] 9일차: 퀴즈4 (0) | 2024.11.30 |