본문 바로가기

분류 전체보기

(392)
528 : 선택제어문 - 자가진단1 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); if (num
[Java] 14.01 - 상속의 기본 문법 이해 들어가며 상속의 적절한 활용 방법은 한두 문장으로 가볍게 설명할 수 있는 내용이 아니다. 그리고 이에 대한 설명을 듣기에 앞서, 상속에 대한 문법적이 이해가 선행되어야 한다. 상속에 대한 매우 치명적인 오해 상속의 이유와 목적을 물어보면 다음과 같이 답을 하는 경우를 매우 흔하게 본다. "상속은 코드의 재활용을 위한 문법이다." 그러나 객체지향 기반의 개발 경험이 풍부한 개발자나, 대학원엣서 컴퓨터공학을 전공한 이들에게 질문을 하면 다음의 내용으로 답을 한다. "연관된 일련의 클래스들에 대해 공통적인 규약을 정의할 수 있다." 위의 답변은 매우 모범적인 답변이긴 하지만 지금 이해할 수 있는 내용은 아니다. 그러나 이 문장의 이해를 목표로 상속을 공부해야 하며, Chapter 16까지 공부하는 과정에서 이..
[Java] 13.03 - 다차원 배열의 이해와 활용 들어가며 배열의 논리적 메모리 구조가 2차원 이상의 형태를 보이는 배열을 가리켜 '다차원 배열'이라고 한다. 즉 2차원배열도 다차원 배열이고, 3차원 배열도 다차원 배열이다. 그러나 일반적인 프로그램에서는 2차원을 초과하는 구조의 배열을 잘 이용하지 않는다. 따라서 설명의 초점을 2차원 배열에 두고자 한다. 그러나 2차원배열을 잘 알면 3차원 배열도 다룰 수 있다. 2차원 배열의 생성과 접근 1차원 배열은 그 이름이 의미하듯이 둘 이상의 변수가 '선의 형태'로 존재하는 배열이다. 반면 2차원 배열은 다수의 변수가 '면의 형태'로 존재하는 배열이다. 위 그림에서 보이듯이 세로 길이와 가로 길이가 각각 3과 4인 int형 2차원 배열은 다음과 같이 생성 한다. int[][] arr = new int[3][4..
[Java] 13.02 - enhanced for문 들어가며 이번에 소개하는 enhanced for문은 자바 5에서 추가되었다. 그리고 지금은 많이 사용되는 반복문 중 하나가 되었다. enhanced for문의 이해와 활용 프로그램을 작성하다 보면 다음과 같이 배열에 저장된 모든 요소를 대상으로 연산, 참조, 또는 탐색을 진행하는 경우를 흔히 접할 수 있다. 배열에 저장된 값 중에서 특정 조건에 해당하는 값을 찾아라. 배열에 저장된 모든 값에 대해 12%씩 그 값을 증가시켜라. 그리고 이러한 상황에서의 문장 구성을 돕기 위해 등장한 것이 enhanced for문이다. 이는 for-each문으로도 불린다. 예를 들어서 '배열에 저장된 모든 값을 출력하라'는 요구 사항을 만족하는 for문은 다음과 같이 작성할 수 있다. int[] ar = {1, 2, 3, ..
[Java] 13.01 - 1차원 배열의 이해와 활용(2) 참조변수 선언의 두 가지 방법 다음의 참조변수 선언을 보자. 이는 앞서 소개하고 설명한 방식의 참조변수 선언이다. int[] arr; 동일한 참조변수 arr을 다음과 같이 선언할 수도 있다. int arr[]; 다음과 같이 배열을 생성하는 문장에서도 이 둘은 동일한 의미로 사용된다. int[] arr = new int[3]; // 조금 더 선호하는 방법 int arr[] = new int[3]; 배열의 참조 값과 메소드 배열도 인스턴스이므로 메소드 호출 시 참조 값의 전달이 가능하다. 예를 들어서 다음과 같이 배열의 참조 값을 인자로 전달할 수 있다. public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5, 6, 7}; int sum = ..
[Java] 13.01 - 1차원 배열의 이해와 활용(1) 들어가며 배열은 '자료형이 같은 둘 이상의 값'을 저장할 수 있는 메모리 공간을 의미한다. 그리고 배열은 그 구조에 따라서 '1차원 배열'과 '다차원 배열'로 나뉜다. 1차원 배열의 생성 방법 1차원 배열은 다음과 같이 정의할 수 있다. 타입이 같은 둘 이상의 데이터를 저장할 수 있는 1차원 구조의 메모리 공간 그런데 자바는 배열도 인스턴스로 처리한다. 즉 '자바 에서는 배열도 인스턴스'이다. 그럼 다음 문장을 모자. 이는 5개의 int형 값을 저장할 수 있는 1차원 배열의 생성문이다. int[] ref = new int[5]; 위의 문장에서 등호를 기준으로 왼편, 오른편에 위치한 것은 각각 '참조변수의 선언'과 '배열의 생성'이다. int[] ref // int형 1차원 배열 인스턴스를 참조할 수 있는..
115 : 연산자 - 형성평가5 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int height1 = sc.nextInt(); int weight1 = sc.nextInt(); int height2 = sc.nextInt(); int weight2 = sc.nextInt(); if ((height2
114 : 연산자 - 형성평가4 Java 1 2 3 4 5 6 7 8 9 10 11 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num1 = sc.nextInt(); int num2 = sc.nextInt(); System.out.println(++num1 + " " + num2--); System.out.println(num1 + " " + num2); } } Colored by Color Scripter cs
113 : 연산자 - 형성평가3 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int width = sc.nextInt(); width += 5; int length = sc.nextInt(); length *= 2; System.out.println("width = " + width); System.out.println("length = " + length); System.out.println("area = " + (width*length)); } } Colored by Color Scri..
112 : 연산자 - 형성평가2 Java 1234567891011import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num1 = sc.nextInt(); int num2 = sc.nextInt(); System.out.printf("%d / %d = %d...%d", num1, num2, num1/num2, num1%num2); }}Colored by Color Scriptercs
111 : 연산자 - 형성평가1 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int kor = sc.nextInt(); int eng = sc.nextInt(); int math = sc.nextInt(); int comp = sc.nextInt(); int sum = kor + eng + math + comp; double avg = sum/4; System.out.printf("sum %d\n", sum); System.out.printf("avg %.0f\n", avg); ..
525 : 연산자 - 자가진단8 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num1 = sc.nextInt(); int num2 = sc.nextInt(); int num3 = sc.nextInt(); boolean bool1 = (num2