1. 아래를 출력 하시오.
*****
1****
11***
111**
1111*
// 코드
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
if (j < i) {
System.out.print("1");
} else {
System.out.print("*");
}
}
System.out.print("\n");
}
2.아래가 의도하지 않은 결과를 나타내는 이유를 설명하시오.
char ch = '가';
System.out.println(ch + '\n');
- literals 에서 int 이하의 연산은 int 로 처리되기 때문에 char '가'와 char '/n'가 int 로 자동형변환돼서 더해졌다. 따라서 값은 int 로 나온다.
3. 함수(메소드)는 어떻게 알아 볼수있는가?
4. 함수 호출 하는 법은?
- 그 함수의 이름을 적고 괄호안에 해당하는 매개변수를 입력한다(매개변수를 요구하지 않는 경우에는 넣으면 안 된다).
5. 함수 만드는 법은?
- class 의 중괄호{} 안에 작성한다.
- void 가 아닌 경우에는 해당 데이터형을 return 한다.
- 입력될 매개변수의 데이터형과 이름을 작성한다.
- Java 에서는 같은 이름의 다른 함수를 작성하면서 입력값과 출력값을 바꾸는 것도 가능하다.
6. 리턴 타입 void 는 어떠한 경우에 쓰는가?
- 그 함수의 결과값을 받아올 필요가 없을 때 사용한다.
7. 아래를 함수로 만드시오.
starPrint2(5)
// 출력
// *****
//
// ****
//
// ***
//
// **
//
// *
// 코드
static void starPrint2(int num) {
for (int i = 0; i < num; i++) {
for(int j = 0; j < num; j++) {
if (j < i) {
System.out.print(" ");
} else {
System.out.print("*");
}
}
System.out.print("\n\n ");
}
}
8. 아래의 함수를 만드시오.
char grade;
double avg = 80;
grade = getGrade(avg);
System.out.println(grade + " 입니다."); // 우 입니다.
// 코드
static char getGrade(double avg) {
char grade;
if (avg >= 90.) {
grade = '수';
} else if (avg >= 80.) {
grade = '우';
} else if (avg >= 70.) {
grade = '미';
} else if (avg >= 60.) {
grade = '양';
} else {
grade = '가';
}
return grade;
}
9. 아래의 함수를 만드시오.
int sum = getHap(1,100);
System.out.println(sum); //5050
// 코드
static int getHap(int num1, int num2) {
int sum = 0;
for (int i = num1; i <= num2; i++) {
sum += i;
}
return sum;
}
10. 아래의 함수를 만드시오.
int count = get57(1,100);
//count 는 1부터 100 까지의 숫자중 5의 배수 이자 7의 배수인 수의 갯수
System.out.println(count);
// 코드
static int get57(int num1, int num2) {
int count = 0;
for(int i = num1; i <= num2; i++) {
if ((i % 5 == 0) && (i % 7 == 0)) {
count += 1;
}
}
return count;
}
11. 아래의 함수를 만드시오.
printGuGudan(3)// 3단 출력
printGuGudan(4)// 4단 출력
// 코드
static void printGuGudan(int dan) {
for (int i = 1; i <= 9; i++) {
System.out.println(dan + " x " + i + " = "+ (dan * i));
}
}
12. 아래의 함수를 만드시오.
getRecArea(3,5) //사각형 넓이
getRecCirlce(5) //원넓이
getTriangleArea(4 , 5) //삼각형 넓이
// 코드
//
// getRecArea(length, height)
//
static double getRecArea(double length, double height) {
double area = length * height;
return area;
}
static double getRecArea(int length, int height) {
return getRecArea((double)length, (double)height);
}
static double getRecArea(double length, int height) {
return getRecArea(length, (double)height);
}
static double getRecArea(int length, double height) {
return getRecArea((double)length, height);
}
//
// getRecCirlce(radius)
//
static double getRecCirlce(double radius) {
double area = Math.PI * Math.pow(radius, 2);
return area;
}
static double getRecCirlce(int radius) {
return getRecCirlce((double)radius);
}
//
// getTriangleArea(length, height)
//
static double getTriangleArea(double length, double height) {
double area = 0.5 * length * height;
return area;
}
static double getTriangleArea(int length, int height) {
return getTriangleArea((double)length, (double)height);
}
static double getTriangleArea(double length, int height) {
return getTriangleArea(length, (double)height);
}
static double getTriangleArea(int length, double height) {
return getTriangleArea((double)length, height);
}
13. 함수로 만들면 좋은점은? ★★★★
- 같은 작업을(중복) 하지 않기 위해
- 기능이 2번 이상 중복되면 반드시 함수로 만들것.
14. 아래의 함수를 만드시오.
int month = 4;
getSeason(3) // 봄입니다. 출력
getSeason(12) // 겨울 입니다. 출력
//코드
static void getSeason(int month) {
String print = new String();
switch(month) {
case 12:
case 1:
case 2: {
print = "겨울";
break;
}
case 3:
case 4:
case 5: {
print = "봄";
break;
}
case 6:
case 7:
case 8: {
print = "여름";
break;
}
case 9:
case 10:
case 11: {
print = "가을";
break;
}
default: {
print = "잘못된 달";
}
}
print += "입니다.";
System.out.println(print);
}