• 검색 결과가 없습니다.

연산자와 조건

N/A
N/A
Protected

Academic year: 2022

Share "연산자와 조건"

Copied!
40
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

연산자와 조건

(2)

❖ 자바 연산자의 개요에 대해 다음 기본 지식을 이해하고 설명할 수 있다.

연산자와 피연산자, 표현식과 그 결과

연산자 종류, 연산자 우선순위

❖ 다음의 다양한 연산자를 프로그래밍에 활용할 수 있다.

대입 연산자 = += -= *= /= %=

산술 연산자 + - * / %

증감 연산자 ++ --

조건 연산자 ? :

관계 연산자 < > <= >= != ==

논리 연산자 && || !

비트 연산자 << >> >>> & | ^

형변환 연산자 (type)

연산 우선 순위

❖ 다음의 다양한 조건문을 이해하고 프로그래밍에 활용할 수 있다.

(3)

단원 03 연산자와 조건 3

1. 연산자 개요

(4)

표현식과 평가

❖ 연산자와 피연산자

연산자(operator)

+, -, * 기호와 같이 이미 정의된 연산을 
 수행하는 문자 또는 문자 조합 기호

피연산자(operand)

연산(operation)에 참여하는 변수나 상수

❖ 표현식 평가

표현식

프로그래밍 언어에서 연산자와 피연산자의 조합으로 구성된 연산식

표현식은 항상 하나의 결과 값이 있음

(5)

단원 03 연산자와 조건

연산자 종류와 우선순위

❖ 연산자 종류

피연산자의 수에 따른 구분

단항(unary operator), 이항(binary operator), 삼항 연산자(ternary operator)

❖ 우선순위

5

(6)

2. 다양한 연산자

(7)

단원 03 연산자와 조건

대입연산자 산술연산자

❖ 대입 연산자(assignment operator)

연산자의 오른쪽 값을 왼쪽 변수에 저장하는 연산자

대입 연산자의 왼쪽은 반드시 값을 저장할 수 있는 변수

대입 연산자는 할당 또는 치환 연산자라고도 부름

❖ 산술연산자 +, -, *, /, %

7

(8)

축약 대입 연산자

❖ 간결하게 x += y로 표현

대입 연산식 x = x + y의 표현

(9)

단원 03 연산자와 조건

증감 연산자

❖ 증가 연산자 ++

변수 값을 1 증가

n++와 ++n은 모두 n=n+1의 기능을 수행

❖ 감소 연산자 --는

1 감소시키는 기능을 수행

마찬가지로 n--와 --n은 n=n-1의 기능을 수행

❖ 전위: ++n, --n

연산의 결과 값은

1 증가/감소된 값

❖ 후위: n++, n--

연산의 결과 값은

1 증가/감소되기 이전 값

9

(10)

조건 연산자

❖ 조건 연산자(conditional operator)

조건의 논리 값에 따라 2개의 피연산자 중 하나가 결과 값

유일한 삼항 연산자

String str = (point%2 == 0) ? "짝수" : "홀수" ;

double max = (x > y) ? x : y ;

(11)

단원 03 연산자와 조건

조건 연산자 예제

❖ 3-3

11

(12)

관계 연산자

❖ 2 개의 피연산자 크기를 비교하는 연산자

결과 값은 boolean 값인

true 또는 false

(13)

단원 03 연산자와 조건

관계 연산자 예제

❖ 3-4

13

(14)

논리 연산자

❖ 논리 연산자

&&

and

||

or

^

xor

!

not, 단항 연산자

피연산자는 반드시 boolean형

결과도 true 아니면 false

❖ 논리연산자 &&와 ||

피연산자 두 개 중에서 왼쪽 피연산자만으로 전체 결과가 결정된다면

오른쪽 피연산자는 평가하지 않음

(15)

단원 03 연산자와 조건

논리 연산자 예제

❖ 3-5

15

(16)

비트 논리 연산자

❖ 비트 논리 연산자 &, |, ^, ~

비트 논리 연산자는 피연산자 정수 값을 비트 단위로 논리 연산을 수행

결과도 int 형

보수 연산자인 ~는 단항 연산자

❖ 3 & 5 연산

(17)

단원 03 연산자와 조건

보수 연산자

❖ 연산자 ~

단항 연산자로 보수 연산자(unary bitwise complement)

각 비트를 0은 1로, 1은 0으로 바꿈

❖ 음수의 비트 표현

2의 보수 표현인 (보수+1)

즉 -1은 ((~1)+1)로 비트로 표현하면 32비트가 모두 1

17

(18)

비트 이동 연산자

❖ 비트 이동 연산자(bit shift operators)

>>, <<, >>>

(19)

단원 03 연산자와 조건

비트 축약 대입 연산자

❖ <<=, >>=, >>>=, &=, |=, ^=

산술연산의 축약대입 연산자와 비스

❖ and 와 xor의 특징

연산자 &

x & 1 == x

연산자 ^

(x ^ y) ^ y == x

19

(20)

비트 축약 대입 연산자

❖ 3-8

(21)

단원 03 연산자와 조건

음수의 표현과 비트 마스크

❖ 음수는 2의 보수로 표현

정수 x에서 (~x + 1)을 2의 보수(2’s complement)

양의 정수 x에서 음수는 (~x + 1)

음의 정수에서 가장 왼쪽 비트는 항상 1

이 비트를 부호비트 또는 MSBMost Significant Bit라 함

❖ 비트 마스크

정수에서 특정 비트가 0인지 1인지를 확인하려면

확인할 비트만 1로 지정된 정수와 비트 AND연산을 수행해 그 결과가 0인지 0이 아닌지 를 확인

이 경우 확인할 비트만 1로 설정된 숫자를 흔히 비트 마스크(bitmask)라 부름

즉 5번째 비트만 1인 비트 마스크는

1 << 4

정수 x에서 오른쪽 n번째 비트 값

연산식 ((x & (1 << n-1)) == 0) ? 0 : 1의 결과

21

(22)

비트 마스크 예제

❖ 3-9

1의 이진수: 1

-1의 이진수: 11111111111111111111111111111111

-1의 이진수: 11111111111111111111111111111111

287956의 이진수: 1000110010011010100

package operator;

public class BitMask {

public static void main(String[] args) { int plus = 1, minus = -1;

System.out.format("%d의 이진수: %s %n", plus, Integer.toBinaryString(plus));

System.out.format("%d의 이진수: %s %n", minus, Integer.toBinaryString(minus));

System.out.format("%d의 이진수: %s %n", ~plus + 1, Integer.toBinaryString(minus));

int x = 287956;

System.out.format("%d의 이0진수: %s %n", x, Integer.toBinaryString(x));

int num = 4; //4번째 비트 값을 알아내기

int mask = 1 << num-1; //4번째 비트만 1인 mask 지정 System.out.format("%d의 오른쪽에서 %d번째 비트 값: ", x, num);

System.out.format("%d %n", ((x & mask) == 0) ? 0 : 1);

} }

(23)

단원 03 연산자와 조건

형변환 연산자(1)

❖ 명시적 형변환

실수를 정수로 변환하거나

범위가 큰 정수형에서 더 작은 정수형으로 변환하려면 명시적 형변환(explicit type cast)이 필요

❖ double 에서 int로

자동 변환이 안되므로
 오류발생

명시적 형변환이 필요

23

(24)

형변환 연산자(2)

❖ 자동 형변환

자바 연산은 동일한 형의 피연산자로 연산을 수행

표현식 3 / 4.0

int 형 3이 자동으로 4.0인 double으로 변환

표현 범위가 넓은 자료형으로 변환

(25)

단원 03 연산자와 조건

형변환 실습예제

❖ 3-10

25

(26)

연산자 우선순위

❖ 실습예제 3-11

(27)

단원 03 연산자와 조건

산술연산의 주의점

❖ ArithmeticException 이라는 예외

정수를 0으로 나누면 실행 중에 발생

❖ Infinity

실수인 0.0으로 나누면 무한대를 의미

❖ 표현식 0.0/0.0

NaN(Not a


Number)가 출력

❖ 자료형 byte와


short 의 산술 연산

모두 int로


변환되어 연산을
 수행

27

(28)

3. 조건문

(29)

단원 03 연산자와 조건

간단한 if

❖ 문장 if

조건의 논리 값에 따라 선택을 지원하는 구문

29

(30)

조건에 따른 2가지 선택 if else

❖ 실습예제 3-14

조건이 만족되지 않은 경우

else를 사용

(31)

단원 03 연산자와 조건

계속된 조건 if else if else

31

(32)

중첩된 if

(33)

단원 03 연산자와 조건

다양한 경로를 표현하는 switch

❖ switch (exp)

연산식의 결과 값에 따라 여러 개의 실행 경로 중 하나를 실행

표현식 exp 결과 값 중에서 case의 값과 일치하는 내부 문장을 실행

❖ exp

byte, short, char, int의 정수형을 허용, 실수형은 지원하지 못함

33

자바 기능이 확장

열거형(enumerated types)

문자열을 표현하는 String 클래스,

기본형의 랩퍼 클래스 (wrapper class)

– Character, Byte, Short,

Integer 클래스도 지원

(34)

실습예제 3-17

(35)

단원 03 연산자와 조건

switch 의 break

❖ 일치하는 case 문 내부를 실행한 후 break 문이 없다면

break 문을 만나기 전까지 무조건 다음 case 내부 문장을 모두 실행

❖ case 4, 5

하나의 case에 여러 개의 정수를 콤마로 나열 불가능

35

(36)

실습예제 3-18

(37)

단원 03 연산자와 조건

문자와 문자열을 지원하는 switch

❖ 문자 지원

❖ 랩퍼 클래스와 문자열도 지원

37

(38)

실습예제 3-19

(39)
(40)

Thank You !

참조

관련 문서

분쟁해결에 관한 조건 등이 있음.. - 분쟁발생시의

③ 함수 &gt; 프로그래밍 &gt; 숫자형 팔레트에서 곱하기 함수를 블록 다이어그램에 두고 화씨온도 터미널과 반복 터미널을 입력으로 연결하고 이 함수의 춗력을 C_F

&#34;Free on Board&#34; means that the seller delivers the goods on board the vessel nominated by the buyer at the named port of shipment or procures the goods..

 Simulation menu에 Simulation Control 선택 후, 더블 클릭 하여 Time step, print time 등 시 뮬레이션 동작 조건 설정.  시뮬레이션 동작 조건 설정 후, Run

 조건 및 매개변수의 철저한 통제가 가능, 주로 동물 대상, 실제 상황에 적용시

• 단순 재구매: 구매자가 조정없이 일상적으로 제품을 재주문하는 산업재 구매상황. • 수정 재구매: 구매자가

주어진 중량의 엔진에 대하여 케이블에 걸리는 장력을 구하기 위해, 여러분은 자유물체도 (free body diagram:FBD)를 그리고..

각 창은 종류에 따라 크기를 일부 조절할 수 있도록 설정한다.. 크기를 조절할 수 있는 창은