1. 기초문법 활용하기
데이터 타입(Data Type)
-
개요 : 변수(Variable)에 저장될 데이터의 형식
-
유형
-
정수 타입(Integer Type) : 정수, 즉 소수점이 없는 숫자를 저장할 때 사용
-
부동 소수점 타입(Floating Point Type) : 소수점 이하가 있는 실수를 저장할 때 사용
-
문자 타입(Character Type) : 한 문자를 저장할 때 사용
-
문자열 타입(Character String Type) : 문자열을 저장할 때 사용
-
논리 타입(Boolean Type) : 조검의 참(True), 거짓(False) 여부를 판단하여 저장할 때 사용
-
배열 타입(Array Type) : 같은 타입의 데이터 집합을 만들어 저장할 때 사용
-
-
C/C++과 Java의 데이터 타입
종류 | C/C++ | Java |
문자 | char | char |
부호없는 문자 | unsigned char | - |
정수 | short | byte |
int | short | |
long | int | |
long long | long | |
부호없는 정수 | unsigned short | - |
unsigned int | - | |
unsigned long | - | |
실수 | float | float |
double | double | |
long double | - | |
논리 | - | boolean |
변수(Variable)
-
개요 : 명령어 처리 도중 발생하는 값을 저장하기 위한 공간, 변할 수 있는 값을 의미
-
명명 규칙
-
영문자, 숫자, _(under bar)를 사용
-
첫 글자는 영문자나 _(under bar)로 시작
-
공백이나 특수문자를 사용 불가
-
대·소문자를 구분
-
예약어를 변수명으로 사용 불가
-
-
기억 클래스(Storage Class) : C언어에서 기억 영역을 결정하는 작업
-
자동 변수(Automatic Variable) : 함수나 코드의 범위를 한정하는 블록 내에서 선언되는 변수
-
외부 변수(External Variable) : 현제 파일이나 다른 파일에서 선언된 변수나 함수를 참조(reference)하기 위한 변수
-
정적 변수(Static Variable) : 함수나 블록이 종료된 뒤에도 값이 소멸되지 않는 변수
-
레지스터 변수(Register Variable) : 메모리가 아닌 CPU 내부의 레지스터에 기억 영역을 할당받는 변수
-
종류 | 기억영역 | 예약어 | 기억 기간 | 사용 범위 |
자동 변수 | 메모리(스택) | auto | 일시적 | 지역적 |
레지스터 변수 | 레지스터 | register | ||
정적 변수(내부) | 메모리(데이터) | static | 영구적 | |
정적 변수(외부) | 전역적 | |||
외부 변수 | extern |
연산자(Operator)
-
산술 연산자 : 가, 감, 승, 제 등의 산술 계산에 사용되는 연산자
연산자 | 의미 | 비고 |
+ | 덧셈 | - |
- | 뺄셈 | - |
* | 곱셈 | - |
/ | 나눗셈 | - |
% | 나머지 | - |
++ | 증가 연산자 | - 전치 : 변수 앞에 연산자가 오는 형태, 먼저 변수의 값을 증감 후 연산에 사용 - 후치 : 변수 뒤에 연산자가 오는 형태, 먼저 연산에 사용 후 변수의 값을 증감 |
-- | 감소 연산자 |
-
관계 연산자 : 두 수의 관계를 비교하여 참(true) 또는 거짓(false)을 결과로 얻는 연산자
연산자 | 의미 |
== | 같다 |
!= | 같지 않다 |
> | 크다 |
>= | 크거나 같다 |
< | 작다 |
<= | 작거나 같다 |
-
비트 연산자 : 비트별(0, 1)로 연산하여 결과를 얻는 연산자
연산자 | 의미 | 비고 |
& | and | 모든 비트가 1일 때만 1 |
^ | xor | 모든 비트가 같으면 0, 하나라도 다르면 1 |
| | or | 모든 비트 중 한 비트라도 1이면 1 |
~ | not | 각 비트의 부정, 0이면 1, 1이면 0 |
<< | 왼쪽 시프트 | 비트를 왼쪽으로 이동 |
>> | 오른쪽 시프트 | 비트를 오른쪽으로 이동 |
-
논리 연산자 : 두 개의 논리 값을 연산하여 참(true) 또는 거짓(false)을 결과로 얻는 연산자
연산자 | 의미 | 비고 |
! | not | 부정 |
&& | and | 모두 참이면 참 |
|| | or | 하나라도 참이면 참 |
-
대입 연산자 : 연산 후 결과를 대입하는 연산식을 간략하게 입력하는 연산자
연산자 | 예 | 의미 |
+= | a += 1 | a = a + 1 |
-= | a -= 1 | a = a - 1 |
*= | a *= 1 | a = a * 1 |
/= | a /= 1 | a = a / 1 |
%= | a %= 1 | a = a % 1 |
<<= | a <<= 1 | a = a << 1 |
>>= | a >>= 1 | a = a >> 1 |
-
조건 연산자 : 조건에 따라 서로 다른 수식을 수행
조건 ? 수식1 : 수식2; '조건'의 수식이 참이면 '수식1'을, 거짓이면 '수식2'를 실행 |
-
기타 연산자
연산자 | 의미 |
sizeof | 자료형의 크기를 표시 |
,(콤마) | 콤마로 구분하여 한 줄에 두 개 이상의 수식을 작성하거나 변수를 정의, 순서 연산자라고 부르기도 함 |
(자료형) | 자료형을 다른 자료형으로 변환할 때 사용, 캐스트(cast) 연산자라고 부름 |
-
연산자 우선순위
대분류 | 중분류 | 연산자 | 결합규칙 | 우선순위 |
단항 연산자 | 단항 연산자 | !(논리 not), ~(비트 not), ++, --, sizeof | ← | 높음 |
이항 연산자 | 산술 연산자 | *, /, % | → | ![]() ![]() |
+, - | ||||
시프트 연산자 | <<, >> | |||
관계 연산자 | <, <=, >=, > | |||
==, != | ||||
비트 연산자 | &(비트 and), ^(비트 xor), |(비트 or) | |||
논리 연산자 | &&(논리 and), ||(논리 or) | |||
삼항 연산자 | 조건 연산자 | ? : | → | |
대입 연산자 | 대입 연산자 | =, +=, -=, *=, /=, %=, <<=, >>= | ← | |
순서 연산자 | 순서 연산자 | , | → | 낮음 |
제어문(Control Statement)
-
개요 : 프로그램의 순서를 변경할 때 사용하는 명령문
-
if문
/* 단순 if문 구조 */
if(조건) {
실행할 문장;
}
/* 다중 if문 구조 */
if(조건1) {
실행할 문장1;
} else if(조건2) {
실행할 문장2;
} else if(조건 n-1) {
실행할 문장n-1;
} else {
실행할 문장n;
}
-
switch문
/* switch문 구조 */
switch(수식) {
case 레이블1 :
실행할 문장1;
break;
case 레이블2 :
실행할 문장2;
break;
case 레이블n-1 :
실행할 문장n-1;
break;
default :
실행할 문장n
}
-
goto문
/* goto문 구조 */
goto 레이블;
레이블 :
실행할 문장;
반복문(Iteration)
-
개요 : 제어문의 한 종류로 일정한 횟수를 반복하는 명령문
-
for문
/* for문 구조 */
for( 초기값; 최종값; 증가값 ) {
실행할 문장;
}
-
while문
/* while문 구조 */
while(조건) {
실행할 문장;
}
-
do~while문
/* do~while문 구조 */
do
실행할 문장;
while(조건);
-
break : switch문이나 반복문 안에서 블록을 벗어남
-
continue : 반복문에서만 사용, continue 이후의 문장을 실행하지 않고 반복문의 처음으로 이동
배열(Array)과 문자열(String)
-
개요 : 동일한 데이터 유형을 손쉽게 처리하기 위해 여러 개의 변수들을 하나의 이름으로 정의해 사용하는 것
-
특징
-
개별적인 요소들의 위치는 첨자를 이용하여 지정
-
배열의 위치는 0부터 시작
-
행 우선으로 데이터가 기적장소에 할당
-
C 언어에서 첨자 없이 배열 이름을 사용하면 배열의 첫 번째 요소의 주소를 지정하는 것과 같음
-
-
1차원 배열
-
2차원 배열
포인터(Pointer)
-
개요 : 변수의 주소를 의미, C 언어에서는 주소를 제어할 수 있는 기능을 제공
-
특징
-
선언 시 변수 앞에 간접 연산자 *를 붙여 포인터 변수를 선언
-
번지 연산자 &를 통해 변수의 주소를 받아옴
-
간접 연산자 *를 통해 포인터 변수가 가리키는 곳의 값을 받아옴
-
메모리의 힙 영역에 접근 가능
-
데이터 입·출력
-
개요 : 표준 입출력 함수(Input-Output Functions)를 통해 키보드로 입력받아 화면으로 출력
-
표준 입력
/* C 언어 표준 입력 */
scanf(서식 문자열, 변수의 주소);
/* Java 언어 표준 입력 */
Scanner input = new Scanner(System.in);
inNum = input.nextInt();
-
표준 출력
/* C 언어 표준 출력 */
printf(서식 문자열, 변수);
/* Java 언어 표준 출력 */
System.out.printf(서식 문자열, 변수)
-
서식 문자열
서식 문자열 | 의미 |
%d | 정수형 10진수 입·출력을 위해 지정 |
%u | 부호없는 정수형 10진수 입·출력을 위해 지정 |
%o | 정수형 8진수 입·출력을 위해 지정 |
%x | 정수형 16진수 입·출력을 위해 지정 |
%c | 문자 입·출력을 위해 지정 |
%s | 문자열 입·출력을 위해 지정 |
%f | 소수점을 포함하는 실수 입·출력을 위해 지정 |
%e | 지수형 실수 입·출력을 위해 지정 |
%ld | long형 10진수 입·출력을 위해 지정 |
%lo | long형 8진수 입·출력을 위해 지정 |
%lx | long형 16진수 입·출력을 위해 지정 |
%p | 주소를 16진수 입·출력을 위해 지정 |
-
제어 문자
문자 | 의미 | 기능 |
\n | new line | 커서를 다음 줄 앞으로 이동 |
\b | backspace | 커서를 왼쪽으로 한 칸 이동 |
\t | tab | 커서를 일정 간격 띄움 |
\r | carriage return | 커서를 현재 줄의 처음으로 이동 |
\0 | null | 널 문자를 출력 |
\' | single quote | 작은따옴표를 출력 |
\" | double quote | 큰따옴표를 출력 |
\a | alert | 스피커로 벨 소리를 출력 |
\\ | backslash | 역 슬래시를 출력 |
\f | form feed | 한 페이지를 넘김 |
예외 처리(Exeeption Handling)
-
개요 : 프로그램의 정상적인 실행을 방해하는 조건이나 상태가 발생했을 때 문제에 대비해 작성해 놓은 처리 루틴
/* Java 언어 예외 처리 */
try {
예외 방생 가능성이 있는 코드;
} catch (예외객체1 매개변수) {
예외객체1에 해당하는 예외 처리 코드;
} catch (예외객체2 매개변수) {
예외객체2에 해당하는 예외 처리 코드;
} catch (예외객체n 매개변수) {
예외객체n에 해당하는 예외 처리 코드;
} catch (Exception 매개변수) {
예외객체1~n에 해당하지 않는 예외 처리 코드;
} finally {
예외 발생 여부와 관계없이 무조건 처리되는 코드;
}
-
Java언어의 예외 객체
예외 객체 | 발생 원인 |
ClassNotFoundException | 클래스를 찾지 못한 경우 |
NoSuchMethodException | 메소드를 찾지 못한 경우 |
FileNotFoundException | 파일을 찾지 못한 경우 |
InterruptedIOException | 입·출력 처리가 중단된 경우 |
AritheticException | 0으로 나누는 등의 산술 연산에 대한 예외가 발생한 경우 |
IllegalArgumentException | 잘못된 인자를 전달한 경우 |
NumberFormatException | 숫자 형식으로 변환할 수 없는 문자열을 숫자 형식으로 변환한 경우 |
ArrayIndexOutOfBoundsException | 배열의 범위를 벗어난 접근을 시도한 경우 |
NegativeArraySizeException | 0보다 작은 값으로 배열의 크기를 지정한 경우 |
NullPointerException | 존재하지 않는 객체를 참조한 경우 |
프로토타입(Prototype)
-
개요 : 함수 원형이라는 의미로, 컴파일러에게 사용될 함수에 대한 정보를 미리 알리는 것
int func(int i, int j);
void main() {
메인 함수 코드;
}
int func(int i, int j) {
func 함수 코드;
}
'2020 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 응용 SW 기초 기술 활용 (0) | 2020.07.21 |
---|---|
[정보처리기사 실기] 프로그래밍 언어 활용(2/2) (0) | 2020.07.17 |
[정보처리기사 실기] 소프트웨어 개발보안 구축 (0) | 2020.07.13 |
[정보처리기사 실기] SQL 응용 (0) | 2020.07.11 |
[정보처리기사 실기] 애플리케이션 테스트 관리 (0) | 2020.07.09 |