본문 바로가기

BackEnd

scanf함수를 이용한 정수와 실수의 입력 scanf 함수 123456789101112131415int main(void){ int n1; double n2; printf("정수 입력: "); scanf("%d", &n1); printf("실수 입력: "); scanf("%lf", &n2); printf("입력된 두 개의 데이터: %d, %f \n", n1, n2); return 0;}Colored by Color Scriptercs 1) scanf 함수에 대해 scanf함수의 %d는 키보드로부터 입력하는 값을 10진수 정수 int형으로 해석하겠다는 의미이다. 그리고 int형 변수 n1에 저장한다. int형 데이터의 입력은 %d, 출력은 %d 이다. double형 데이터의 입력은 %lf, 출력은 %f 이다. 2) scanf 함수와 printf함수..
함수와 관련된 기타 내용들 1. 자동형 변환 - 5행에서 전달인자와 function함수의 매개변수의 형이 일치하지 않아 자동형변환이 일어난다. - 14행에서 double형 상수를 반환하기때문에 int형으로 자동형변환이 일어난다. 123456789101112131415int function(int n); int main(void){ printf("반환 값: %d \n", function(5.67));//자동 형변환 return 0;} int function(int n){ printf("입력된 정수: %d \n", n); return 3.15;//자동 형변환}Colored by Color Scriptercs 2. 명시적 형변환 - 아래와 같이 명시적 형변환을 해주는 이유는 실수가 아닌 의도적인 구현임을 나타내준다. 1234567891..
함수의 선언과 정의 1. 잘못된 위치에 놓여있는 함수의 정의 - C프로그램은 위에서 아래로 컴파일이 진행된다. - 컴파일러가 컴파일 하지 않은 함수의 호출문에서는 에러가 발생한다. 위처럼 Increment함수를 호출할때, 메인함수를 먼저 컴파일하고 Increment함수를 컴파일했기 때문 에 에러가 발생한다. 즉 함수는 호출되기 이전에 정의 되어야 한다. 하지만 함수의 선언을 통해 이렇 게 위치를 바꾸지 않고도 에러가 발생하지 않을 수 있다. 2. 함수의 선언을 통해서 원하는 위치에 함수 정의하기 1234567891011121314151617181920212223int main(void){ int num = 2; int Increment(int n);/* Increment 함수의 선언 */ num = Increment(num..
Map<K,V> 인터페이스를 구현하는 컬렉션 클래스들 1. Map 인터페이스를 구현하는 컬렉션 클래스들 - 이 클래스들은 key와 value 방식의 데이터 저장을 한다. - key 는 value를 찾는 열쇠를 의미하며 중복이 불가능하다 - value 는 저장할 데이터를 의미하고 중복이 가능하다 - value 요소의 저장 순서를 유지하지 않는다.2. Map를 구현하는 대표적인 클래스 2가지 1) HashMapHashMap 또한 해시 알고리즘을 기반으로 구현되어 있다.따라서 매우 빠른 검색속도를 보인다.1234567891011121314151617181920212223242526272829303132333435363738import java.util.HashMap;import java.util.Iterator; class a15_IntroHashMap{ pub..
Set<E> 인터페이스를 구현하는 컬렉션 클래스들 1. Set 인터페이스를 구현하는 제네릭 클래스들의 공통점1) 동일한 인스턴스의 중복 저장을 허용하지 않는다.2) 인스턴스의 저장 순서를 유지하지 않는다.3) 즉, 집합의 성격을 지닌다. 2. Set 인터페이스를 구현하는 제네릭 클래스들1) HashSet- HashSet은 중복저장을 판담함에 있어서 기본적으로 인스턴스의 참조값을 기준으로 중복을 판단한다. 그러므로 프로그래머가 equals메소드를 오버라이딩 함으로써 중복저장에 대한 기준을 세워줘야 한다.- HashSet은 해시 알고리즘을 적용하여 hashCode 메소드를 오버라이딩 함으로써 성능을 개선 할 수 있다. 아래는 HashSet이 중복을 허용하지 않고 순서를 유지하지 않음을 보여준다.123456789101112131415161718192021im..
Iterator 를 이용한 인스턴스의 순차적 접근 1. 컬렉션 프레임워크와 Iterator 의 관계자바의 컬렉션 프레임워크는 컬렉션에 저장된 요소를 읽어오는 방법을 Iterator 인터페이스로 표준화하고 있습니다.Collection 인터페이스에는 iterator 라는 이름의 메소드가 정의되어있다.Iterator iterator() { .... }iterator 메소드가 반환하는 참조 값의 인스턴스는 Iterator인터페이스를 구현하고 있다.iterator 메소드의 반환형이 Iterator이니, 반환된 참조값을 이용해서 Iterator에 선언된 함수들을 호출할수있다그러면 컬렉션 인스턴스에 저장된 인스턴스의 순차적 접근이 가능하다.따라서 Collection 인터페이스를 상속받는 List와 Set 인터페이스에서도 iterator() 메소드를 사용할 수 있다...
List<E> 인터페이스를 구현하는 컬렉션 클래스들 1. List 인터페이스를 구현하는 제네릭 클래스들의 공통점1) 동일한 인스턴스의 중복 저장을 허용한다2) 인스턴스의 저장 순서가 유지된다. 2. List 인터페이스를 구현하는 제네릭 클래스들1) ArrayList- ArrayList는 이름이 의미하듯이 배열 기반으로 데이터를 저장한다.- 데이터의 저장을 위해서 인덱스 정보를 별도로 관리할 필요가 없다.- 인데스를 통해 데이터의 참조가 용이해서 빠른 참조가 가능하다.- 데이터의 삭제를 위한 추가적인 코드의 작성이 필요 없다.- 데이터의 삭제에 필요한 연산과정이 매우 길다.- 저장되는 인스턴스의 수에 따라서 크기가 자동으로 늘어나 배열과 달리 길이를 고민하지 않아도 된다.- 저장소의 용량을 늘리는 과정에서 많은 시간이 소요된다. 123456789101112..
컬렉션 프레임워크 1. 컬렉션 프레임워크의 기본적 이해1) 프레임 워크(Framework)란? 생산성을 향상시키기 위한것소프트웨어간의 호환성, 통신성, 유지보수성을 좋게하는 도구소프트웨어를 만들기에 앞서서 큰 골격을 만들고 , 이 골격을 기준으로 삼고 구현하는것.완성품을 만드는데 있어서 하나의 골격잘 정의된, 약속된 구조나 골격잘 정의된, 약속된 구조의 클래스들여러 프로그래머들에 의해 사용되도록, 잘 정의된 클래스들의 모임컬렉션 라이브러리라 하지 않고 컬렉션 프레임워크라 하는것은컬렉션과 관련된 클래스들의 정의에 적용되는 설계의 원칙, 또는 구조가 존재하기 때문이다. 2) 컬렉션 프레임워크란?데이터의 저장, 그리고 이와 관련 있는 알고리즘을 구조화 해놓은 프레임워크다데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을..