본문 바로가기

관계연산자와 논리연산자 1. 관계연산자(비교 연산자) 관계연산자는 크기 및 동등 관계를 따지는 연산자이다. 즉 두 피연산자의 크기 관계를 따져주는 이 항 연산자이다. 따라서 비교 연산자라고도 한다. 두 피연산자의 값을 비교하기 때문이다. 참이면 1을, 거짓이면 0을 반환한다. 0이외의 모든 값은 참을 의미한다. 2. 논리연산자 논리 연산자 역시 참과 거짓을 따지는 연산자로서 AND(논리곱), OR(논리합), NOT(논리부정)을 의미하는 연산자로서 구성되어 있다. 위 연산자들 모두 연산의 결과로 참 또는 거짓을 반환한다. 그리고 이들 연산결과를 나타낸 표 를 가리켜 진리표라 하는데 아래는 진리표이다. 아래는 논리연산의 예를 보여준다. 두번의 관계연산이 참이되어 1을 반환했다. 그 후 논리연산의 피연산자가 둘 다 1이여서 논리 연..
다양한 연산자들의 소개 1. 복합 대입 연산자 복합 대입 연산자는 다른 연산자와 묶여서 정의된 연산자이다. 2. 부호 연산자로서의 + 와 - 피연산자가 하나인 단항 연산자로서의 +,- 연산자에 대해 살펴보자 1) 부호 - 연산자 - 단항 연산자로서 부호를 바꾸는 역할을 한다. 2) 부호 + 연산자 - 단한 연사자로서 아무런 기능을 제공하지 않는다. - 그러면 연산자로 존재하는 이유는? 컴파일 오류를 발생시키지 않기 위해서이다. - +125와 같은 표현함으로써 음수가 아님을 강조하기도 한다. 3. 증가,감소 연산자(++,--) : prefix - 전위 증감 4. 증가,감소 연산자(++,--) : postfix - 후위 증감 5. prefix와 postfix의 비교 아래 그림을 보면 피연산자에 저장된 값을 1증가시키는 것은 같으나..
연산자들의 우선순위와 결합방향 1. 연산의 순서를 결정하는 2가지 요소 1) 우선순위: 연산자들 사이에서의 연산순서 결정요소 2) 결합방향: 우선순위가 같은 연산자들 사이에서의 연산순서 결정요소 - 우선순위가 같으면 결합방향도 같다. 덧셈과 뺄셈보다는 곱셈과 나눗셈이 먼저계산된다. 이것이 연산자의 우선순위이다. 뺄셈은 왼쪽에서부터 순서대로 계산한다. 이것이 결합방향이다. 2. 연산자의 우선순위와 결합방향 3. 연산의 순서를 조절하는 구분자 소괄호 - 연산자가 아닌 구분자이다. - 연산의 대상을 별도의 단위로 구분시키는 구분자. - 때문에 소괄호 내에 존재하는 연산문에서 하나의 연산 결과를 구성
산술 연산자를 통해서 보는 연산의 원리 1. 연산자란? cpu에게 연산을 시키기 위해서 정의한 기호를 가리켜 연산자라 한다. 2. c언어의 연산자(대입연산자, 산술연산자) 두개의 피 연산자를 필요로 하는 연산자를 이항 연산자라 하는데, 대입 연산자와 산술 연산자는 모두 이항 연산자에 속한다. - % 연산자의 피연산자는 반드시 정수형이어야 한다. 3. 연산사 예시 코드 - 12,13,14행을 보면 먼저 연산을 실행한후에 printf문이 실행된다. - 13행에서 연산결과의 자료형은 피연산자의 자료형과 일치한다. 1234567891011121314151617int main(void){ int n1 = 7; int n2 = 3; int result = n1 + n2; printf(" 덧셈 결과: %d \n", result); result = n1 -..
Queue의 다양한 구현 1. 원형 큐(링 버퍼) - 배열 기반 - front(머리), rear(꼬리)라는 변수를 인덱스로 활용해 삽입,조회,삭제를 구현하였다.- front와 rear의 변수가 같다면 큐가 비어있는것이다.- front와 rear+1 이 같다면 큐가 꽉차있는것이다.- 배열의 끝에 도달하면 첫번째 인덱스로 순환하여 원형큐라 한다.- 삭제의 경우 배열에서 실제로 하지 않고 front(머리-출구), rear(꼬리-입구)의 값을 조정한다. 12345678910111213141516171819202122package queue;public class ArrayQueueMain { public static void main(String[] args) {//배열 기반 큐 ArrayQueue queue = new ArrayQue..
Queue - 큐의 개념과 특성들 1. Queue의 정의 - Queue는 먼저 들어간 데이터가 먼저 나오는 자료구조이다.- 입구와 출구가 다르다.- 파이프 구조이다. 2. Queue의 기본연산 offer - 큐의 입구에 데이터 추가poll - 큐의 출구로부터 데이터의 반환과 + 삭제peek - 큐의 출구로부터 데이터의 반환isEmpty - 데이터의 유무 확인 Method Description boolean isEmpty() Queue가 비어있는지 알려준다. boolean offer(Object o) Queue에 객체를 저장. 성공하면 true, 실패하면 false를 반환. Object poll() Queue에서 객체를 꺼내서 반환+삭제. 비어있으면 null을 반환. Object peek() 삭제없이 요소를 읽어 온다. Queue가 비어있..
Stack의 다양한 구현 1. 순수 배열로 직접 구현 배열에서 인덱스를 활용해 topIndex의 값을 바꿔주는것이 포인트이다. POP을 호출해도 배열에서 값을 실제로 삭제하지는 않고 인덱스만을 활용한다. 1234567891011121314151617181920212223package Stack; public class ArrayStackMain { public static void main(String[] args) { ArrayStack st = new ArrayStack(); st.push("0");//삽입 st.push("1"); st.push("2"); System.out.println("= MyStack1 peek="); System.out.println(st.peek());//마지막 값 리턴 System.out.pri..
Stack 스택의 개념과 특성들 1. Stack의 정의 - Stack은 쌓아 올린다는 의미로서 마지막에 들어간 데이터가 먼저 나오는 자료구조 입구와 출구가 같다 2. Stack의 기본연산 push - 스택의 맨 위에 데이터 추가pop - 스택의 맨 위 데이터의 반환과 + 삭제peek - 스택의 맨 위 데이터의 반환empty - 데이터의 유무 확인 Method Description boolean isEmpty() Stack이 비어있는지 알려준다. Object peek() Stack의 맨 위에 저장된 객체를 반환. pop()과 달리 Stack에서 객체를 끼내지는 않음.(비었을 때는 EmptyStackException발생) Object pop() Stack의 맨 위에 저장된 객체를 삭제후 반환한다. (비었을 때는 Empty StackExce..