From 184a41f10d5258655156dd2634160975b34fadc4 Mon Sep 17 00:00:00 2001 From: GEUNHOKIM Date: Thu, 19 Jan 2023 00:51:20 +0900 Subject: [PATCH 1/3] =?UTF-8?q?geunhokim=20Report1,2=20=EC=A0=9C=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/geunhokim/report1/Report 1_1 | 8 ++++++ src/geunhokim/report1/Report 1_2 | 8 ++++++ src/geunhokim/report1/Report1_3.java | 21 +++++++++++++++ src/geunhokim/report2/Report 2_1 | 13 ++++++++++ src/geunhokim/report2/Report2_2.java | 39 ++++++++++++++++++++++++++++ src/geunhokim/report2/Report2_3.java | 12 +++++++++ src/geunhokim/report2/Report2_4.java | 16 ++++++++++++ src/geunhokim/report2/Report2_5.java | 14 ++++++++++ src/geunhokim/report2/Report2_6.java | 16 ++++++++++++ 9 files changed, 147 insertions(+) create mode 100644 src/geunhokim/report1/Report 1_1 create mode 100644 src/geunhokim/report1/Report 1_2 create mode 100644 src/geunhokim/report1/Report1_3.java create mode 100644 src/geunhokim/report2/Report 2_1 create mode 100644 src/geunhokim/report2/Report2_2.java create mode 100644 src/geunhokim/report2/Report2_3.java create mode 100644 src/geunhokim/report2/Report2_4.java create mode 100644 src/geunhokim/report2/Report2_5.java create mode 100644 src/geunhokim/report2/Report2_6.java diff --git a/src/geunhokim/report1/Report 1_1 b/src/geunhokim/report1/Report 1_1 new file mode 100644 index 0000000..c7d3913 --- /dev/null +++ b/src/geunhokim/report1/Report 1_1 @@ -0,0 +1,8 @@ +//2-4. 다음 중 변수를 잘못 초기화 한 것은? +1. byte b = 256; +2. char c = ''; +3. char answer = 'no'; +4. float f = 3.14 +5. double d = 1.4e3f; + +=> 1,2,3,4 diff --git a/src/geunhokim/report1/Report 1_2 b/src/geunhokim/report1/Report 1_2 new file mode 100644 index 0000000..96afc3b --- /dev/null +++ b/src/geunhokim/report1/Report 1_2 @@ -0,0 +1,8 @@ +//2-7. 다음 문장들의 출력 결과를 적으세요. 오류가 있는 문장의 경우, '오류' 라고 적으세요. +System.out.println("1" + "2"); => "12" +System.out.println(true+""); => true +System.out.println('A' + 'B'); => 131 +System.out.println('1' + 2); => 51 +System.out.println('1' + '2'); => 99 +System.out.println('J' +"ava"); => Java +System.out.println(true + null); => 오류 \ No newline at end of file diff --git a/src/geunhokim/report1/Report1_3.java b/src/geunhokim/report1/Report1_3.java new file mode 100644 index 0000000..ee4f7f1 --- /dev/null +++ b/src/geunhokim/report1/Report1_3.java @@ -0,0 +1,21 @@ +package geunhokim.report1; + +//2-8. 아래는 변수 x, y, z의 값을 서로 바꾸는 예제이다. 결과와 같이 출력되도록 코드를 넣으세요. +public class Report1_3 { + public static void main(String[] args){ + int x = 1; + int y = 2; + int z = 3; + + int a; + a = x; + x = y; + y = z; + z = a; + + System.out.println("x="+x); + System.out.println("y="+y); + System.out.println("z="+z); + } +} +//예상 결과 : x=2, y=3, z=1 \ No newline at end of file diff --git a/src/geunhokim/report2/Report 2_1 b/src/geunhokim/report2/Report 2_1 new file mode 100644 index 0000000..e57d39e --- /dev/null +++ b/src/geunhokim/report2/Report 2_1 @@ -0,0 +1,13 @@ +byte b = 10; +char ch = 'A'; +int i = 100; +long l = 1000L; + +//3-1. 다음 중 형변환을 생략할 수 있는 것은? (모두 고르시오) +1. b = (byte)i; +2. ch = (char)b; +3. short s = (short)ch; +4. float f = (float)l; +5. i = (int)ch; + +=> 2번, 5번 diff --git a/src/geunhokim/report2/Report2_2.java b/src/geunhokim/report2/Report2_2.java new file mode 100644 index 0000000..4616a61 --- /dev/null +++ b/src/geunhokim/report2/Report2_2.java @@ -0,0 +1,39 @@ +package geunhokim.report2; + +public class Report2_2 { + public static void main(String[] args) { + int x = 2; + int y = 5; + char c = 'A'; // 'A'의 문자코드는 65 + +// System.out.println(y >= 5 || x < 0 && x > 2); +// ->정답 : false, 이유 : &&는 양쪽 다 같아야 하는데, 왼쪽은 true 오른쪽은 false이기 때문에 +// System.out.println(y += 10 - x++); +// ->정답 : 13, 이유 : 5 + 10 - 2 = 13 한 후, 결과에 관계없이 x값을 -1하니까 최종 값에는 변화가 없다. +// +// System.out.println(x += 2); +// -> 정답 : 5, 이유 : 2 + (1+2) = 5 +// +// System.out.println(!('A' <= c && c <= 'Z')); +// -> 정답 : false, 이유 : !('A' <= 'A' && 'A' <= 'Z')는 !(true && true)이고 따라서 false이다 +// +// System.out.println('C' - c); +// -> 정답 : 2, 이유 : 67 - 65 = 2 +// +// System.out.println('5' - '0'); +// -> 정답 : 5 +// +// System.out.println(c + 1); +// -> 정답 : 66, 이유 : 65 + 1 = 66 +// +// System.out.println(++c); +// -> 정답 : 'B' +// +// System.out.println(c++); +// -> 정답 : 'B' +// +// System.out.println(c); +// -> 정답 : 'C' + } + +} diff --git a/src/geunhokim/report2/Report2_3.java b/src/geunhokim/report2/Report2_3.java new file mode 100644 index 0000000..c8072f6 --- /dev/null +++ b/src/geunhokim/report2/Report2_3.java @@ -0,0 +1,12 @@ +package geunhokim.report2; + +//3-3. 아래는 변수의 num 값 중에서 백의 자리 이하를 버리는 코드이다. +//만일 변수 num의 값이 '456'이라면 '400'이 되고, '111'이라면 '100'이 된다. +//알맞은 코드를 넣으시오. + +public class Report2_3 { + public static void main(String[] args){ + int num = 456; + System.out.println(num / 100 * 100); + } +} diff --git a/src/geunhokim/report2/Report2_4.java b/src/geunhokim/report2/Report2_4.java new file mode 100644 index 0000000..7267d34 --- /dev/null +++ b/src/geunhokim/report2/Report2_4.java @@ -0,0 +1,16 @@ +package geunhokim.report2; + +//3-4. 아래의 코드는 사과를 담는데 필요한 바구니(버켓)의 수를 구하는 코드이다. +//만일 사과의 수가 123개이고 하나의 바구니에는 10개의 사과를 담을 수 있다면, 13개의 바구니가 필요할 것이다. +//알맞은 코드를 넣으시오. +public class Report2_4 { + public static void main(String[] args){ + int numOfApples = 123; // 사과의 개수 + int sizeOfBucket = 10; // 바구니의 크기(바구니에 담을 수 있는 사과의 개수) + int numOfBucket = numOfApples/sizeOfBucket + (numOfApples%sizeOfBucket > 0 ? 1 : 0); // 모든 사과를 담는데 필요한 바구니의 수 + + System.out.println("필요한 바구니의 수 :"+numOfBucket); + } +} + +//예상 결과 -> 필요한 바구니의 수 :13 diff --git a/src/geunhokim/report2/Report2_5.java b/src/geunhokim/report2/Report2_5.java new file mode 100644 index 0000000..f7acbbd --- /dev/null +++ b/src/geunhokim/report2/Report2_5.java @@ -0,0 +1,14 @@ +package geunhokim.report2; + +//3-5. 아래는 변수 num의 값에 따라 '양수', '음수', '0'을 출력하는 코드이다. +//삼항연산자를 이용해서 빈칸에 알맞은 코드를 넣으시오. +//Hint : 삼항 연산자를 두 번 사용할 것! +public class Report2_5 { + public static void main(String[] args){ + int num = 10; + String result = (num>=0)?(num>0)?"양수":"0":"음수"; + System.out.println(result); + } +} + +//예상 결과 : 양수 diff --git a/src/geunhokim/report2/Report2_6.java b/src/geunhokim/report2/Report2_6.java new file mode 100644 index 0000000..1c6e1ef --- /dev/null +++ b/src/geunhokim/report2/Report2_6.java @@ -0,0 +1,16 @@ +package geunhokim.report2; + +//3-6. 아래는 화씨(Fahrenheit)를 섭씨(Celcius)로 변환하는 코드이다. +//변환 공식이 'C = 5/9*(F-32)'라고 할 때, 빈 칸에 알맞은 코드를 넣으시오. +// 단, 변환값은 소수점 셋째자리에서 반올림하며, Math.round() 함수를 사용하지 않고 처리할 것! +public class Report2_6 { + public static void main(String[] args){ + int fahrenheit = 100; + float celcius = (int)((5 / 9f * (fahrenheit - 32)) * 100 + 0.5) / 100f; + + System.out.println("Fahrenheit:"+fahrenheit); + System.out.println("Celcius:"+celcius); + } +} + +//예상 결과 : Fahrenheit:100, Celcius:37.78 \ No newline at end of file From d5064769f3ef5e89c2032d8fd1b9afc3dc80bf6b Mon Sep 17 00:00:00 2001 From: GEUNHOKIM Date: Fri, 20 Jan 2023 02:49:58 +0900 Subject: [PATCH 2/3] =?UTF-8?q?geunhokim=20Report=203,4=20=EC=A0=9C?= =?UTF-8?q?=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/geunhokim/report3/report.login.drawio.png | Bin 0 -> 29005 bytes src/geunhokim/report3/report3_1 | 40 +++++++++++++++ src/geunhokim/report3/report3_10.java | 46 ++++++++++++++++++ src/geunhokim/report3/report3_2.java | 15 ++++++ src/geunhokim/report3/report3_3.java | 16 ++++++ src/geunhokim/report3/report3_4.java | 33 +++++++++++++ src/geunhokim/report3/report3_5.java | 38 +++++++++++++++ src/geunhokim/report3/report3_6.java | 19 ++++++++ src/geunhokim/report3/report3_7.java | 18 +++++++ src/geunhokim/report3/report3_8.java | 9 ++++ src/geunhokim/report3/report3_9.java | 17 +++++++ src/geunhokim/report4/report4_1 | 11 +++++ src/geunhokim/report4/report4_2 | 8 +++ src/geunhokim/report4/report4_3.java | 15 ++++++ src/geunhokim/report4/report4_4.java | 31 ++++++++++++ src/geunhokim/report4/report4_5.java | 34 +++++++++++++ src/geunhokim/report4/report4_6.java | 40 +++++++++++++++ 17 files changed, 390 insertions(+) create mode 100644 src/geunhokim/report3/report.login.drawio.png create mode 100644 src/geunhokim/report3/report3_1 create mode 100644 src/geunhokim/report3/report3_10.java create mode 100644 src/geunhokim/report3/report3_2.java create mode 100644 src/geunhokim/report3/report3_3.java create mode 100644 src/geunhokim/report3/report3_4.java create mode 100644 src/geunhokim/report3/report3_5.java create mode 100644 src/geunhokim/report3/report3_6.java create mode 100644 src/geunhokim/report3/report3_7.java create mode 100644 src/geunhokim/report3/report3_8.java create mode 100644 src/geunhokim/report3/report3_9.java create mode 100644 src/geunhokim/report4/report4_1 create mode 100644 src/geunhokim/report4/report4_2 create mode 100644 src/geunhokim/report4/report4_3.java create mode 100644 src/geunhokim/report4/report4_4.java create mode 100644 src/geunhokim/report4/report4_5.java create mode 100644 src/geunhokim/report4/report4_6.java diff --git a/src/geunhokim/report3/report.login.drawio.png b/src/geunhokim/report3/report.login.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..dba705218d595799f4293e6362a68c450b7d9c02 GIT binary patch literal 29005 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 '0' && ch < '9') { +} + +//char형 변수 ch가 영문자(대문자 또는 소문자)일 때 true인 조건식 + +if('a' < ch < 'z' || 'A' < ch < 'Z') { +} + +//int형 변수 year가 400으로 나눠떨어지거나 또는 4로 나눠떨어지고 100으로 나눠떨어지지 않을때 true인 조건식 + +if(year%400 = 0 || (year%4 = 0 && year%100 != 0)) { +} + +//boolean형 변수 powerOn이 false일 때 true인 조건식 + +if(powerOn == false) { +} + +//문자열 참조변수 str이 "yes"일 때 true인 조건식 + +if(str.equals("yes")) { +} \ No newline at end of file diff --git a/src/geunhokim/report3/report3_10.java b/src/geunhokim/report3/report3_10.java new file mode 100644 index 0000000..02a1bd3 --- /dev/null +++ b/src/geunhokim/report3/report3_10.java @@ -0,0 +1,46 @@ +package geunhokim.report3; + +//4-10. 다음은 숫자맞추기 게임을 작성한 것이다. 1과 100사이의 값을 반복적으로 입력해서 +//컴퓨터가 생각한 값을 맞추면 게임이 끝난다. +//사용자가 값을 입력하면, 컴퓨터는 자신이 생각한 값과 비교해서 결과를 알려준다. +//사용자가 컴퓨터가 생각한 숫자를 맞추면 게임이 끝나고 몇 번 만에 숫자를 맞췄는지 알려준다. + +class Exercise4_10 { + public static void main(String[] args) { + // 1~100사이의 임의의 값을 얻어서 answer에 저장한다. + int answer = (int)(Math.random()*99+1); + System.out.println(answer); + int input = 0; //사용자입력을 저장할 공간 + int count = 0; //시도횟수를 세기위한 변수 + + // 화면으로 부터 사용자입력을 받기 위해서 Scanner클래스 사용 + java.util.Scanner s = new java.util.Scanner(System.in); + do { + count++; + System.out.print("1과 100사이의 값을 입력하세요 : "); + input = s.nextInt(); //입력받은 값을 변수 input에 저장한다. + if(answer == input) { + System.out.println("맞혔습니다"); + } else if(answer > input) { + System.out.println("더 큰 수를 입력하세요"); + } else { + System.out.println("더 작은 수를 입력하세요"); + } + + } while(true); //무한반복문 + } // end of main +} // end of class +//예상 결과 +//1과 100사이의 값을 입력하세요 : 50 +//더 큰 수를 입력하세요. +//1과 100사이의 값을 입력하세요 : 75 +//더 큰 수를 입력하세요. +//1과 100사이의 값을 입력하세요 : 87 +//더 작은 수를 입력하세요. +//1과 100사이의 값을 입력하세요 : 80 +//더 작은 수를 입력하세요. +//1과 100사이의 값을 입력하세요 : 77 +//더 작은 수를 입력하세요. +//1과 100사이의 값을 입력하세요 : 76 +//맞혔습니다. +//시도횟수는 6번입니다. diff --git a/src/geunhokim/report3/report3_2.java b/src/geunhokim/report3/report3_2.java new file mode 100644 index 0000000..81d4bd2 --- /dev/null +++ b/src/geunhokim/report3/report3_2.java @@ -0,0 +1,15 @@ +package geunhokim.report3; + +//4-2. 1부터 20까지의 정수중에서 2 또는 3의 배수가 아닌 수의 총합을 구하세요. +class Exercise4_2 { + public static void main(String[] args) { + int sum = 0; + + for(int i = 1; i <= 20; i++) { + if((i%2 != 0 && i%3 != 0)) { + sum += i; + } + } + System.out.println("sum="+sum); + } +} \ No newline at end of file diff --git a/src/geunhokim/report3/report3_3.java b/src/geunhokim/report3/report3_3.java new file mode 100644 index 0000000..7de545c --- /dev/null +++ b/src/geunhokim/report3/report3_3.java @@ -0,0 +1,16 @@ +package geunhokim.report3; + +//4-3. 1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+...+10)의 결과를 계산하세요. +class Exercise4_3 { + public static void main(String[] args) { + int sum = 0; + int totalSum = 0; + + for(int i = 1; i <= 10; i++) { + sum += i; + totalSum += sum; + } + + System.out.println("totalSum="+totalSum); + } +} \ No newline at end of file diff --git a/src/geunhokim/report3/report3_4.java b/src/geunhokim/report3/report3_4.java new file mode 100644 index 0000000..1362373 --- /dev/null +++ b/src/geunhokim/report3/report3_4.java @@ -0,0 +1,33 @@ +package geunhokim.report3; + +//4-4. 1+(-2)+3+(-4)+...과 같은 식으로 계속 더해나갔을 때, +//몇까지 더해야 총합이 100 이상이 되는지 구하세요. +class Exercise4_4 { + public static void main(String[] args) { + int sum = 0; // 총합을 저장할 변수 + int s = 1; // 값의 부호를 바꿔주는데 사용할 변수 + int num = 0; + int i = 1; + + while (sum <= 100) { + if (i % 2 == 0) { + s = -1; + num = s * i++; + sum += num; + } else { + s = 1; + num = s * i++; + sum += num; + } + + if (sum >= 100) { + break; + } + } + + System.out.println("num="+num); + System.out.println("sum="+sum); + + } + +} diff --git a/src/geunhokim/report3/report3_5.java b/src/geunhokim/report3/report3_5.java new file mode 100644 index 0000000..6fe848a --- /dev/null +++ b/src/geunhokim/report3/report3_5.java @@ -0,0 +1,38 @@ +package geunhokim.report3; + +//4-5. 다음의 for문을 while문으로 변경하세요. +class Exercise4_5 { + public static void main(String[] args) { + for(int i=0; i<=10; i++) { + for(int j=0; j<=i; j++) + System.out.print("*"); + System.out.println(); + } + }//end of main +} // end of class + +class Exercise4_5_1 { + public static void main(String[] args) { + int i = 0, j = 0; + + while (i <= 10) { + + j = 0; + + while (j <= i) { + + System.out.print("*"); + + j++; + + } + + System.out.println(); + + i++; + + } + + } +} + diff --git a/src/geunhokim/report3/report3_6.java b/src/geunhokim/report3/report3_6.java new file mode 100644 index 0000000..b1c10f3 --- /dev/null +++ b/src/geunhokim/report3/report3_6.java @@ -0,0 +1,19 @@ +package geunhokim.report3; + + +//4-6. 두 개의 주사위를 던졌을 때, 눈의 합이 6이 되는 모든 경우의 수를 출력하는 프로그램을 작성하세요. +class Exercise4_6 { + public static void main(String[] args) { + + for (int i = 1; i <= 6; i++) { + + for (int j = 1; j <= 6; j++) { + + if (i + j == 6) { + + System.out.println("(" + i + "," + j + ")"); + } + } + } + } +} \ No newline at end of file diff --git a/src/geunhokim/report3/report3_7.java b/src/geunhokim/report3/report3_7.java new file mode 100644 index 0000000..bd1aa92 --- /dev/null +++ b/src/geunhokim/report3/report3_7.java @@ -0,0 +1,18 @@ +package geunhokim.report3; + +//4-7. 숫자로 이루어진 문자열 str이 있을 때, 각 자리의 합을 더한 결과를 출력하는 코드를 완성하세요. +//만일 문자열이 "12345"라면, ‘1+2+3+4+5’의 결과인 15를 출력이 출력되어야 합니다. +class Exercise4_7 { + public static void main(String[] args) { + String str = "12345"; + int sum = 0; + + for (int i = 0; i < str.length(); i++) { + + sum += str.charAt(i)-'0'; + + } + + System.out.println("sum=" + sum); + } +}//예상 결과 : sum=15 diff --git a/src/geunhokim/report3/report3_8.java b/src/geunhokim/report3/report3_8.java new file mode 100644 index 0000000..7a8909a --- /dev/null +++ b/src/geunhokim/report3/report3_8.java @@ -0,0 +1,9 @@ +package geunhokim.report3; + +//4-8. Math.random()을 이용해서 1부터 6 사이의 임의의 정수를 변수 value에 저장하는 코드를 완성하세요. +class Exercise4_8{ + public static void main(String[] args){ + int value = (int)(5*Math.random()+1); + System.out.println("value:"+value); + } +} diff --git a/src/geunhokim/report3/report3_9.java b/src/geunhokim/report3/report3_9.java new file mode 100644 index 0000000..e7f569b --- /dev/null +++ b/src/geunhokim/report3/report3_9.java @@ -0,0 +1,17 @@ +package geunhokim.report3; + +//4-9. int 타입의 변수 num이 있을 때, 각 자리의 합을 더한 결과를 출력하는 코드를 완성하세요. +//만일 변수 num의 값이 12345라면, ‘1+2+3+4+5’의 결과인 15를 출력하세요. +//문자열로 변환하지 말고 숫자로만 처리하세요. +class Exercise4_9 { + public static void main(String[] args) { + int num = 12345; + int sum = 0; + String str = String.valueOf(num); + + for(int i = 0; i < str.length(); i++) { + sum += str.charAt(i)-'0'; + } + System.out.println("sum="+sum); + } +}//예상 결과 : sum=15 diff --git a/src/geunhokim/report4/report4_1 b/src/geunhokim/report4/report4_1 new file mode 100644 index 0000000..1837bd9 --- /dev/null +++ b/src/geunhokim/report4/report4_1 @@ -0,0 +1,11 @@ +//5-1. 다음은 배열을 선언하거나 초기화한 것이다. 잘못된 것을 고르고 그 이유를 설명하세요. + +1. int[] arr[]; +2. int[] arr = {1,2,3,}; +3. int[] arr = new int[5]; +4. int[] arr = new int[5]{1,2,3,4,5}; +5. int arr[5]; +6. int[] arr[] = new int[3][]; +정답 : 4,5번 +4번에서 뒤에 있는 대괄호 안의 배열은 자동적으로 길이가 결정 되기때문에 길이는 크기를 지정할 수 없다. +5번은 배열을 선언할때는 크기를 지정할 수 없다. \ No newline at end of file diff --git a/src/geunhokim/report4/report4_2 b/src/geunhokim/report4/report4_2 new file mode 100644 index 0000000..93813fe --- /dev/null +++ b/src/geunhokim/report4/report4_2 @@ -0,0 +1,8 @@ +//5-2. 다음과 같은 배열이 있을 때, arr[3].length의 값은? +int[][]arr ={ + {5,5,5,5,5}, + {10,10,10}, + {20,20,20,20}, + {30,30} +}; +답 : {30,30}이기때문에 2다. \ No newline at end of file diff --git a/src/geunhokim/report4/report4_3.java b/src/geunhokim/report4/report4_3.java new file mode 100644 index 0000000..d65efcb --- /dev/null +++ b/src/geunhokim/report4/report4_3.java @@ -0,0 +1,15 @@ +package geunhokim.report4; + +//5-3. 배열 arr에 담긴 모든 값을 더하는 프로그램을 완성하세요. +class Exercise5_3{ + public static void main(String[] args){ + int[] arr = {10, 20, 30, 40, 50}; + int sum = 0; + + for(int i = 0; i < arr.length; i++) { + + sum += arr[i]; + } + System.out.println("sum="+sum); + } +}//예상 결과 : sum=150 \ No newline at end of file diff --git a/src/geunhokim/report4/report4_4.java b/src/geunhokim/report4/report4_4.java new file mode 100644 index 0000000..9ac5292 --- /dev/null +++ b/src/geunhokim/report4/report4_4.java @@ -0,0 +1,31 @@ +package geunhokim.report4; + +//5-4. 2차원 배열 arr에 담긴 모든 총합과 평균을 구하는 프로그램을 완성하세요. +class Exercise5_4 { + public static void main(String[] args) { + int[][] arr = { + { 5, 5, 5, 5, 5 }, + { 10, 10, 10, 10, 10 }, + { 20, 20, 20, 20, 20 }, + { 30, 30, 30, 30, 30 } + }; + + int total = 0; + float average = 0; + + for(int i = 0 ;i < arr.length; i++){ + + for(int j =0; j < arr[i].length; j++){ + + total += arr[i][j]; + + } + + } + + average = (float)total / (arr.length * arr[0].length); + + System.out.println("total=" + total); + System.out.println("average=" + average); + } // end of main +} // end of class \ No newline at end of file diff --git a/src/geunhokim/report4/report4_5.java b/src/geunhokim/report4/report4_5.java new file mode 100644 index 0000000..774e0e6 --- /dev/null +++ b/src/geunhokim/report4/report4_5.java @@ -0,0 +1,34 @@ +package geunhokim.report4; + +//5-5. 다음은 1과 9 사이의 중복되지 않은 숫자로 이루어진 3자리 숫자를 만들어내는 프로그램이다. +//코드를 완성하세요. 다만 Math.random()을 사용했기 때문에 실행 결과 예시와 다를 수 있습니다. +class Exercise5_5{ + public static void main(String[] args) { + int[] ballArr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + int[] ball3 = new int[3]; + + // 배열 ballArr의 임의의 요소를 골라서 위치를 바꾼다 + for (int i = 0; i < ballArr.length; i++) { + int j = (int) (Math.random() * ballArr.length); + int tmp = 0; + + tmp = ballArr[i]; + + ballArr[i] = ballArr[j]; + + ballArr[j] = tmp; + } + + // 배열 ballArr의 앞에서 3개의 수를 배열 ball3로 복사한다 + + for(int i = 0; i < 3; i++){ + + ball3[i] = ballArr[i]; + + } + + for (int i = 0; i < ball3.length; i++) { + System.out.print(ball3[i]); + } + }//end of main +}//end of class \ No newline at end of file diff --git a/src/geunhokim/report4/report4_6.java b/src/geunhokim/report4/report4_6.java new file mode 100644 index 0000000..1c59240 --- /dev/null +++ b/src/geunhokim/report4/report4_6.java @@ -0,0 +1,40 @@ +package geunhokim.report4; + +//5-6. 단어의 글자위치를 섞어서 보여주고 원래의 단어를 맞추는 예제이다. +//실행결과와 같이 동작하도록 빈 칸을 채우세요. +import java.util.Scanner; + +class Exercise5_13 { + public static void main(String args[]) { + String[] words = { "television", "computer", "mouse", "phone" }; + + Scanner scanner = new Scanner(System.in); + + for (int i = 0; i < words.length; i++) { + char[] question = words[i].toCharArray(); // String을 char[]로 변환 + + for(int j =0; j < question.length; j++){ + + int idx = (int)(Math.random() % question.length); + + char tmp; + + tmp = question[j]; + + question[j] = question[idx]; + + question[idx] = tmp; + + } + + System.out.printf("Q%d. %s의 정답을 입력하세요 .>", i + 1, new String(question)); + String answer = scanner.nextLine(); + + // trim()으로 answer의 좌우 공백을 제거한 후, equals로 word[i]와 비교 + if (words[i].equals(answer.trim())) + System.out.printf("맞았습니다.%n%n"); + else + System.out.printf("틀렸습니다.%n%n"); + } + } //end of main +}//end of class From c59b405c6465654af7f23b1639227b68b2a4ce0b Mon Sep 17 00:00:00 2001 From: GEUNHOKIM Date: Wed, 25 Jan 2023 09:09:23 +0900 Subject: [PATCH 3/3] =?UTF-8?q?geunhokim=20Report=205,6,7=20=EC=A0=9C?= =?UTF-8?q?=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/geunhokim/report5/report5_1 | 16 ++++++ src/geunhokim/report5/report5_2.java | 34 ++++++++++++ src/geunhokim/report5/report5_3.java | 59 +++++++++++++++++++++ src/geunhokim/report5/report5_4.java | 16 ++++++ src/geunhokim/report5/report5_5.java | 25 +++++++++ src/geunhokim/report6/report6_1 | 77 ++++++++++++++++++++++++++++ src/geunhokim/report6/report6_2.java | 16 ++++++ src/geunhokim/report7/report7_1.java | 42 +++++++++++++++ src/geunhokim/report7/report7_2.java | 38 ++++++++++++++ src/geunhokim/report7/report7_3.java | 64 +++++++++++++++++++++++ src/geunhokim/report7/report7_4.java | 36 +++++++++++++ src/geunhokim/report7/report7_5.java | 23 +++++++++ 12 files changed, 446 insertions(+) create mode 100644 src/geunhokim/report5/report5_1 create mode 100644 src/geunhokim/report5/report5_2.java create mode 100644 src/geunhokim/report5/report5_3.java create mode 100644 src/geunhokim/report5/report5_4.java create mode 100644 src/geunhokim/report5/report5_5.java create mode 100644 src/geunhokim/report6/report6_1 create mode 100644 src/geunhokim/report6/report6_2.java create mode 100644 src/geunhokim/report7/report7_1.java create mode 100644 src/geunhokim/report7/report7_2.java create mode 100644 src/geunhokim/report7/report7_3.java create mode 100644 src/geunhokim/report7/report7_4.java create mode 100644 src/geunhokim/report7/report7_5.java diff --git a/src/geunhokim/report5/report5_1 b/src/geunhokim/report5/report5_1 new file mode 100644 index 0000000..4470e7a --- /dev/null +++ b/src/geunhokim/report5/report5_1 @@ -0,0 +1,16 @@ +//6-1. 다음과 같은 멤버 변수를 갖는 Student 클래스를 정의하세요. +//타입 : String, 변수명 : name, 설명 : 학생 이름 +//타입 : int, 변수명 : ban, 설명 : 반 +//타입 : int, 변수명 : no, 설명 : 번호 +//타입 : int, 변수명 : kor, 설명 : 국어 점수 +//타입 : int, 변수명 : eng, 설명 : 영어 점수 +//타입 : int, 변수명 : math, 설명 : 수학 점수 + +class student { + String name; + int ban; + int no; + int kor; + int eng; + int math; +} \ No newline at end of file diff --git a/src/geunhokim/report5/report5_2.java b/src/geunhokim/report5/report5_2.java new file mode 100644 index 0000000..008ba27 --- /dev/null +++ b/src/geunhokim/report5/report5_2.java @@ -0,0 +1,34 @@ +package geunhokim.report5; + +//6-2. 6-1에서 정의한 Student 클래스에 생성자와 info()를 추가해서 실행결과와 같은 결과를 얻도록 하세요. +//class Exercise6_2{ +// public static void main(String[] args){ +// Student s = new Student("홍길동", 1, 1, 100, 60, 76); +// +// String str = s.info(); +// System.out.println(str); +// }// 예상 결과 : 홍길동, 1, 1, 100, 60, 76, 236, 78.7 +//} +// +//class Student { +// String name; +// int ban; +// int no; +// int kor; +// int eng; +// int math; +// +// Student(String name, int ban, int no, int kor, int eng, int math) { +// this.name = name; +// this.ban = ban; +// this.no = no; +// this.kor = kor; +// this.eng = eng; +// this.math = math; +// } +// +// public String info() { +// return name + "," + ban + "," + no + "," + kor + "," + eng + "," + math + "," + (kor+eng+math) + "," + ((int)((kor+eng+math)/3f*10+0.5f)/10f); +// } +// +//} \ No newline at end of file diff --git a/src/geunhokim/report5/report5_3.java b/src/geunhokim/report5/report5_3.java new file mode 100644 index 0000000..f288851 --- /dev/null +++ b/src/geunhokim/report5/report5_3.java @@ -0,0 +1,59 @@ +package geunhokim.report5; + +//6-3. 연습문제 6-1에서 정의한 Student 클래스에 다음과 같이 정의된 두 개의 메서드를 추가하세요. +//1. 메서드명 : getTotal +//기능 : 국어(kor), 영어(eng), 수학(math)의 점수를 모두 더해서 반환한다. +//반환타입 : int +//매개변수 : 없음 +//2. 메서드명 : getAverage +//기능 : 총점(국어점수+영어점수+수학점수)을 과목수로 나눈 평균을 구한다. +//소수점 둘째자리에서 반올림할 것. +//반환타입 : float +//매개변수 : 없음 + +class Exercise6_3 { + public static void main(String args[]) { + Student s = new Student(); + s.name = "홍길동"; + s.ban = 1; + s.no = 1; + s.kor = 100; + s.eng = 60; + s.math = 76; + System.out.println("이름 :"+s.name); + System.out.println("총점 :"+s.getTotal()); + System.out.println("평균 :"+s.getAverage()); + }//예상 결과 : 이름 : 홍길동, 총점 : 236, 평균 : 78.7 +} +class Student { + String name; + int ban; + int no; + int kor; + int eng; + int math; + + Student() {} + + Student(String name, int ban, int no, int kor, int eng, int math) { + this.name = name; + this.ban = ban; + this.no = no; + this.kor = kor; + this.eng = eng; + this.math = math; + } + + public int getTotal() { + return (kor+eng+math); + } + + public float getAverage() { + return (int)((kor+eng+math)/3f*10+0.5f)/10f; + } + + public String info() { + return name + "," + ban + "," + no + "," + kor + "," + eng + "," + math + "," + getTotal() + "," + getAverage(); + } + +} \ No newline at end of file diff --git a/src/geunhokim/report5/report5_4.java b/src/geunhokim/report5/report5_4.java new file mode 100644 index 0000000..4fc1b50 --- /dev/null +++ b/src/geunhokim/report5/report5_4.java @@ -0,0 +1,16 @@ +package geunhokim.report5; + +//6-5. 다음의 코드에 정의된 변수들을 종류별(클래스 변수,인스턴스 변수, 지역변수)로 구분해서 적으세요. +class PlayingCard { + int kind; // 인스턴스 변수 + int num; // 인스턴스 변수 + static int width; // 클래스 변수 + static int height; // 클래스 변수 + PlayingCard(int k, int n) { + kind = k; // int k는 지역변수 + num = n; // int n은 지역변수 + } + public static void main(String args[]) { + PlayingCard card = new PlayingCard(1,1); // card, args는 지역변수 + } +} diff --git a/src/geunhokim/report5/report5_5.java b/src/geunhokim/report5/report5_5.java new file mode 100644 index 0000000..b8fb482 --- /dev/null +++ b/src/geunhokim/report5/report5_5.java @@ -0,0 +1,25 @@ +package geunhokim.report5; + +//6-7. 다음은 컴퓨터 게임의 병사(marine)를 클래스로 정의한 것이다. +//이 클래스의 멤버 중에 static을 붙여야 하는 것은 어떤 것들이고 그 이유는 무엇인가? static 속성값이 공통으로 +//(단, 모든 병사의 공격력과 방어력은 같아야 한다.) +class Marine { + int x=0, y=0; //Marine의 위치좌표 (x,y) + int hp = 60; //현재 체력 + int weapon = 6; //공격력 + int armor = 0; //방어력 + void weaponUp() { + weapon++; + } + void armorUp() { + armor++; + } + void move(int x, int y) { + this.x = x; + this.y = y; + } +} + +// static을 붙여야 하는 것들 : weapon, armor, weaponUp, armorUp +// 이유 : weapon과 armor는 같은 병사니까 공통된 속성이므로, static을 사용해야 한다. +// 그리고 weapon메서드와 armor메서드는 static 변수를 사용하므로 둘 다 역시 static이 되어야 한다. \ No newline at end of file diff --git a/src/geunhokim/report6/report6_1 b/src/geunhokim/report6/report6_1 new file mode 100644 index 0000000..6f0e99d --- /dev/null +++ b/src/geunhokim/report6/report6_1 @@ -0,0 +1,77 @@ +아래 문제를 풀고, 해설을 적어서 github에 md 파일 또는 텍스트 파일로 제출해주세요. + +6-8. 다음 중 생성자에 대한 설명으로 옳지 않은 것은? (모두 고르시오) => b,e +a. 모든 생성자의 이름은 클래스의 이름과 동일해야한다.(O) +b. 생성자는 객체를 생성하기 위한 것이다.(X) +=>생성자는 객체를 초기화 하기 위해서 하는 것이다. +c. 클래스에는 생성자가 반드시 하나 이상 있어야 한다.(O) +d. 생성자가 없는 클래스는 컴파일러가 기본 생성자를 추가한다.(O) +e. 생성자는 오버로딩 할 수 없다.(X) +=> 오버로딩 조건만 만족한다면, 오버로딩을 할 수 있다. + +6-9. 다음 중 this에 대한 설명으로 맞지 않은 것은? (모두 고르시오) => b +a. 객체 자신을 가리키는 참조변수이다.(O) +b. 클래스 내에서라면 어디서든 사용할 수 있다.(X) +=> 인스턴스 메서드와 생성자에서만 사용 가능. +c. 지역변수와 인스턴스변수를 구별할 때 사용한다.(O) +d. 클래스 메서드 내에서는 사용할 수 없다.(O) + +6-10. 다음 중 오버로딩이 성립하기 위한 조건이 아닌 것은? (모두 고르시오) => c,d +a. 메서드의 이름이 같아야 한다.(O) +b. 매개변수의 개수나 타입이 달라야 한다.(O) +c. 리턴타입이 달라야 한다.(X) +=> 리턴타입은 아무 상관없다. +d. 매개변수의 이름이 달라야 한다.(X) +=> 매개변수명이 같더라도 타입이 다르면 된다. + +6-11. 다음 중 아래의 add메서드를 올바르게 오버로딩 한 것은? (모두 고르시오) => b,c,d +> long add(int a, int b) { return a+b; } + +a. long add(int x, int y) { return x+y; } (X) +=> 매개변수 타입이 같고, 갯수가 똑같이 2개 이기때문에 안 된다. +b. long add(long a, long b) { return a+b; } (O) +=> 메서드 이름이 같고, 매개변수의 타입이 다르기 때문에 오버로딩이 가능하다 +c. int add(byte a, byte b) { return a+b; } (O) +=>메서드 이름이 같고, 매개변수의 타입이 다르기 때문에 오버로딩이 가능하다 +d. int add(long a, int b) { return (int)(a+b); } (O) +=> 메서드 이름이 같고, 한쪽 매개변수의 타입이 다르기 때문에 오버로딩이 가능하다 + +6-12. 다음 중 초기화에 대한 설명으로 옳지 않은 것은? (모두 고르시오) => c,e +a. 멤버변수는 자동 초기화되므로 초기화하지 않고도 값을 참고할 수 있다.(O) +b. 지역변수는 사용하기 전에 반드시 초기화해야 한다.(O) + => 지역변수는 사용 빈도가 높기때문에 매번 새로운 값에 대해서 메모리를 할당 하는게 아니라 기존 메모리에 값을 덮어씌운다. + 그런데 Java는 그 값을 알지 못하기 때문에 사용자가 초기화를 통해서 알려줘야 한다 +c. 초기화 블럭보다 생성자가 먼저 수행된다.(X) + =>초기화 블럭이 먼저다 +d. 명시적 초기화를 제일 우선적으로 고려해야 한다.(O) +=> 명시적 초기화가 가장 사용하기가 쉽기 때문에 간단한 값을 저장하는 정도라면 제일 우선적으로 고려하는게 좋다. +e. 클래스변수보다 인스턴스변수가 먼저 초기화된다(X) + =>클래스변수는 클래스가 처음 로딩될때 자동적으로 초기화 되기 때문에 클래스변수가 먼저 초기화 된다 + +6-13. 다음 중 인스턴스변수의 초기화 순서가 올바른 것은? => a +a. 기본값-명시적초기화-초기화블럭-생성자 (O) +b. 기본값-명시적초기화-생성자-초기화블럭 (X) +c. 기본값-초기화블럭-명시적초기화-생성자 (X) +d. 기본값-초기화블럭-생성자-명시적초기화 (X) + +6-14. 다음 중 지역변수에 대한 설명으로 옳지 않은 것은? (모두 고르시오) => a,e +a. 자동 초기화되므로 별도의 초기화가 필요없다. (X) + => 지역변수는 사용 빈도가 높기때문에 매번 새로운 값에 대해서 메모리를 할당 하는게 아니라 기존 메모리에 값을 덮어씌운다. + 그런데 Java는 그 값을 알지 못하기 때문에 사용자가 초기화를 통해서 꼭 알려줘야 한다 +b. 지역변수가 선언된 메서드가 종료되면 지역변수도 함께 소멸된다. (O) + => 시작과 동시에 생성이 되고, 종료되면 사라진다. +c. 메서드의 매개변수로 선언된 변수도 지역변수이다. (O) +d. 클래스변수나 인스턴스변수보다 메모리 부담이 적다. (O) +e. 힙(heap)영역에 생성되며 가비지 컬렉터에 의해 소멸된다. (X) + => 힙(heap)영역은 인스턴스가 생성되는 영역이며, 지역변수는 호출스택(call stack)에 생성된다 + +6-15. 호출스택이 다음과 같은 상황일 때 옳지 않은 설명은? (모두 고르시오) => b +a. 제일 먼저 호출스택에 저장된 것은 main메서드이다. (O) +b. println메서드를 제외한 나머지 메서드들은 모두 종료된 상태이다. (X) + =>종료된 상태가 아닌, 대기 상태이며, println메서드가 종료가 되면, 그 밑에 있는 메서드가 순차적으로 다시 실행이 된다. +c. method2메서드를 호출한 것은 main메서드이다. (O) + =>밑에서부터 위쪽으로 순차적으로 호출된 것이므로 main메서드 바로 위쪽에 있는 method2는 밑에 main메서드에 의해서 호출이 되었다. +d. println메서드가 종료되면 method1메서드가 수행을 재개한다. (O) +e. main-method2-method1-println의 순서로 호출되었다. (O) + => 호출순서는 밑에서부터 위로 순이다 +f. 현재 실행중인 메서드는 println뿐이다. (O) \ No newline at end of file diff --git a/src/geunhokim/report6/report6_2.java b/src/geunhokim/report6/report6_2.java new file mode 100644 index 0000000..46a0de1 --- /dev/null +++ b/src/geunhokim/report6/report6_2.java @@ -0,0 +1,16 @@ +package geunhokim.report6; + +//6-16. 다음 코드의 실행 결과를 예측하여 적어주세요. +class Exercise6_16 { + public static void change(String str) { + str += "456"; + } + + public static void main(String[] args) { + String str = "ABC123"; // 문자열 str에 "ABC123"값을 초기화 + System.out.println(str); // 문자열 str에 아직 아무런 변화가 없기 때문에 "ABC123" 출력 + change(str); //클래스 메서드 change가 메인 메서드의 str의 주소를 참조 하지만 호출 스택에서 위치가 다르기 때문에, + //클래스 메서드에서 str문자열 뒤에 456을 붙여도 기존의 문자열은 아무 지장이 없다. + System.out.println("After change:" + str); // 문자열 str은 여전히 "ABC123"값을 출력 + } +} \ No newline at end of file diff --git a/src/geunhokim/report7/report7_1.java b/src/geunhokim/report7/report7_1.java new file mode 100644 index 0000000..ef28bb1 --- /dev/null +++ b/src/geunhokim/report7/report7_1.java @@ -0,0 +1,42 @@ +package geunhokim.report7; +import java.util.Arrays; +import java.util.Random; + +//6-17. 다음과 같이 정의된 메서드를 작성하고 테스트하세요. +// 메서드명 : shuffle +// 기능 +// 주어진 배열에 담긴 값의 위치를 바꾸는 작업을 반복하여 뒤섞이게 한다. +// 처리한 배열을 반환한다. +// 반환타입 : int[] +// 매개변수 : int[] arr - 정수값이 담긴 배열 +class Exercise6_17 { + + public static int[] shuffle(int[] arr) { + + if(arr == null || arr.length == 0) { + return arr; + + } + + for(int i = 0; i < arr.length; i++) { + + int j = (int)(Math.random() * arr.length); + + int tmp = arr[i]; + arr[i] = arr[j]; + arr[j] = tmp; + + } + + return arr; + + } + + public static void main(String[] args) { + int[] original = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + System.out.println(java.util.Arrays.toString(original)); + + int[] result = shuffle(original); + System.out.println(java.util.Arrays.toString(result)); + } +} diff --git a/src/geunhokim/report7/report7_2.java b/src/geunhokim/report7/report7_2.java new file mode 100644 index 0000000..19b2957 --- /dev/null +++ b/src/geunhokim/report7/report7_2.java @@ -0,0 +1,38 @@ +package geunhokim.report7; + +//6-18. 다음과 같이 정의된 메서드를 작성하고 테스트하세요. +// 메서드명 : isNumber +// 기능 +// 주어진 문자열이 모두 숫자로만 이루어져있는지 확인한다. +// 모두 숫자로만 이루어져있으면 true를 반환하고, 그렇지 않으면 false를 반환한다. +// 만일 주어진 문자열이 null이거나 빈문자열 ""이라면 false를 반환한다. +// 반환타입 : boolean +// 매개변수 : String str - 검사할 문자열 +// (힌트) String클래스의 charAt(int i)메서드를 사용하면 문자열의 i번째 위치한 문자를 얻을 수 있다. +class Exercise6_18 { + + public static boolean isNumber(String str) { + + if(str == null || str.equals("")) { + return false; + } + + for(int i = 0; i < str.length(); i++) { + char c = str.charAt(i); + + if(c < '0' || c > '9') { + return false; + } + } + + return true; + } + + public static void main(String[] args) { + String str = "123"; + System.out.println(str + " 는 숫자입니까? " + isNumber(str)); + str = "1234o"; + System.out.println(str + " 는 숫자입니까? " + isNumber(str)); + } +} +//예상 결과 : 123는 숫자입니까? true, 1234o는 숫자입니까? false diff --git a/src/geunhokim/report7/report7_3.java b/src/geunhokim/report7/report7_3.java new file mode 100644 index 0000000..92a3e49 --- /dev/null +++ b/src/geunhokim/report7/report7_3.java @@ -0,0 +1,64 @@ +package geunhokim.report7; + +//6-19. Tv클래스를 주어진 로직대로 완성하세요. 완성한 후에 실행해서 주어진 실행결과와 일치하는지 확인하세요. +class MyTv { + boolean isPowerOn; + int channel; + int volume; + final int MAX_VOLUME = 100; + final int MIN_VOLUME = 0; + final int MAX_CHANNEL = 100; + final int MIN_CHANNEL = 1; + void turnOnOff() { + // (1) isPowerOn의 값이 true면 false로, false면 true로 바꾼다. + isPowerOn = !isPowerOn; + } + void volumeUp() { + // (2) volume의 값이 MAX_VOLUME보다 작을 때만 값을 1 증가시킨다. + if(volume < MAX_VOLUME) { + volume = ++volume; + } + } + void volumeDown() { + // (3) volume의 값이 MIN_VOLUME보다 클 때만 값을 1 감소시킨다. + if(volume > MIN_VOLUME) { + volume = ++volume; + } + } + void channelUp() { + // (4) channel의 값을 1 증가시킨다. + // 만일 channel이 MAX_CHANNEL이면 , channel의 값을 MIN_CHANNEL로 바꾼다. + if(channel < MAX_CHANNEL) { + channel = ++channel; + } else { + channel = MIN_CHANNEL; + } + } + void channelDown() { + // (5) channel의 값을 1 감소시킨다 . + // 만일 channel이 MIN_CHANNEL이면, channel의 값을 MAX_CHANNEL로 바꾼다. + if(channel > MIN_CHANNEL) { + channel = --channel; + } else { + channel = MAX_CHANNEL; + } + } +} + +class Exercise6_19 { + public static void main(String args[]) { + MyTv t = new MyTv(); + t.channel = 100; + t.volume = 0; + System.out.println("CH:" + t.channel + ", VOL:" + t.volume); + t.channelDown(); + t.volumeDown(); + System.out.println("CH:" + t.channel + ", VOL:" + t.volume); + t.volume = 100; + t.channelUp(); + t.volumeUp(); + System.out.println("CH:" + t.channel + ", VOL:" + t.volume); + } +} + +//예상 결과 : CH: 100, VOL: 0 / CH: 99, VOL: 0 / CH: 100, VOL: 100 diff --git a/src/geunhokim/report7/report7_4.java b/src/geunhokim/report7/report7_4.java new file mode 100644 index 0000000..941e574 --- /dev/null +++ b/src/geunhokim/report7/report7_4.java @@ -0,0 +1,36 @@ +package geunhokim.report7; + +//6-20. 다음과 같이 정의된 메서드를 작성하고 테스트하세요. +// 메서드명 : max +// 기능 +// 주어진 int형 배열의 값 중에서 제일 큰 값을 반환한다. +// 만일 주어진 배열이 null이거나 크기가 0인 경우, -999999를 반환한다. +// 반환타입 : int +// 매개변수 : int[] arr - 최대값을 구할 배열 +class Exercise6_20 { + public static int max(int[] arr) { + + if(arr == null || arr.length == 0) { + return -999999; + } + + int arrMax = arr[0]; + + for(int i = 1; i < arr.length; i++) { + if(arr[i] > arrMax) { + arrMax = arr[i]; + } + } + + return arrMax; + } + public static void main(String[] args) { + int[] data = {3,2,9,4,7}; + System.out.println(java.util.Arrays.toString(data)); + System.out.println("최대값 :"+max(data)); + System.out.println("최대값 :"+max(null)); + System.out.println("최대값 :"+max(new int[]{})); // 크기가 0인 배열 } + } +} + +//예상 결과 : 최대값: 9 / 최대값: -99999 최대값: -999999 diff --git a/src/geunhokim/report7/report7_5.java b/src/geunhokim/report7/report7_5.java new file mode 100644 index 0000000..ac4c07a --- /dev/null +++ b/src/geunhokim/report7/report7_5.java @@ -0,0 +1,23 @@ +package geunhokim.report7; + +//6-21. 다음과 같이 정의된 메서드를 작성하고 테스트하시오. +// 메서드명: abs +// 기능 : 주어진 값의 절대값을 반환한다. +// 반환타입 : int +// 매개변수 : int value +class Exercise6_21 { + public static int abs(int value) { + if(value < 0) { + value = -1 * value; + } + + return value; + } + public static void main(String[] args) { + int value = 5; + System.out.println(value + "의 절대값 :" + abs(value)); + value = -10; + System.out.println(value + "의 절대값 :" + abs(value)); + } +} +//예상 결과 : 5의 절대값 : 5 / -10의 절대값 : 10