Presentation is loading. Please wait.

Presentation is loading. Please wait.

자바 프로그래밍 입문 : 객체지향적 사고법 chapter 04. 연산자와 제어문.

Similar presentations


Presentation on theme: "자바 프로그래밍 입문 : 객체지향적 사고법 chapter 04. 연산자와 제어문."— Presentation transcript:

1 자바 프로그래밍 입문 : 객체지향적 사고법 chapter 04. 연산자와 제어문

2 학습목표 객체와 연산자 학습 객체 학습 연산자 학습 제어문 학습 반복문 학습 조건문 학습 동의대 김미진

3 순서 자바 언어의 연산자 연산자 우선순위 문자 데이터형과 문자열 객체 제어문 동의대 김미진

4 자바 언어의 연산자 프로그래밍의 기본 로직 자바 언어의 연산자 변수 연산자 제어문 메모리와 연산기를 통한 판단 및 처리
여러 개의 로직을 모아서 메소드를 구성 자바 언어의 연산자 단항, 다항 적용 우선 순위 좌우 결합성 동의대 김미진

5 객체 연산자 new 키워드 점 (.) 연산자 클래스로 부터 객체를 생성 생성자 호출 객체 참조 반환
참조 변수 또는 클래스 이름 뒤에 붙음 객체나 클래스의 메소드 또는 변수를 나타냄 private으로 선언되지 않은 메소드나 변수만 접근 가능 동의대 김미진

6 String str = new String("가나다");
클래스로 부터 객체 생성 String str = new String("가나다"); int i = 10; 기본형 변수는 new 키워드를 사용하지 않는다. 문자열 객체에 한해서 new 키워드 없이 객체 생성이 가능하다. 동의대 김미진

7 System.out.println("Hello, World!");
. (점) 연산자 클래스/객체 변수/메소드 접근 System.out.println("Hello, World!"); 클래스명 System 클래스의 PrintStream형 객체의 참조변수 out 객체의 참조변수 (클래스 변수) System.out 클래스 (참조) 변수 out.println("") 객체 메소드 동의대 김미진

8 . 연산자 예제 결과 환영, 자바 프로그래밍! 동의대 김미진

9 할당 연산자 '=' (할당) 연산자 할당 연산자 규칙 오른쪽 값을 왼쪽 변수에 저장함 수학에서의 등호는 '==' 로 표현
할당 연산자는 항상 + 또는 – 값을 취함 자바는 unsigned 값이 없음 boolean형은 true 또는 false 값만을 취함 오른쪽 값과 왼쪽 변수는 항상 같은 데이터형 이거나 자동 형변환이 가능해야함 동의대 김미진

10 할당 연산자 예제 결과 i = 10 i = 30 동의대 김미진

11 숫자형 연산자 산술 연산자 필요 항에 따른 연산자 분류 숫자를 이용한 연산자
사칙 연산 (+, -, *, /)과 나머지 (%) 연산자 연산 결과로 자동 형변환이 발생함 필요 항에 따른 연산자 분류 단항 연산자 항이 하나인 증감 연산자 이항 연산자 항이 두개인 사칙 연산자 및 % 연산자 항이 두개인 사칙 저장 연산자 동의대 김미진

12 산술 연산자 연산자 예 결과 설명 + 10 + 20 30 덧셈 - 10 – 20 -10 뺄셈 * 10 * 20 200 곱셈 /
10 / 20 0 (정수인 경우) 나눗셈 % 10 % 20 10 나머지 동의대 김미진

13 산술 연산자 예제 x = 10 y = 20 x + y = 30 z = z + x, z = 40 z = z + 1, z = 41
결과 x = 10 y = 20 x + y = 30 z = z + x, z = 40 z = z + 1, z = 41 ... 동의대 김미진

14 비교 논리 연산자 비교 논리 연산자 비교연산자 예 결과 설명 < 5 < 3 false 작다 > 5 > 3
두 수를 비교하여 true 또는 false를 결정 비교연산자 결과 설명 < 5 < 3 false 작다 > 5 > 3 true 크다 == 5 == 3 같다 <= 5 <= 3 작거나 같다 >= 5 >= 3 크거나 같다 != 5 != 3 같지 않다

15 비교 연산자 종류 비교 연산의 세 가지 종류 연산 종류 예 결과 설명 5 > 3 true
두 수가 큰지, 작은지, 같은지 판별하는 기본 비교 연산 비교 연산과 논리 연산을 연결하는 비교 논리 연산 객체형이 맞는지 틀리는지 판변하는 동종 판별 연산 연산 종류 결과 설명 비교 연산 5 > 3 true 비교 논리 연산 5 > 3 && 5 < 3 false 논리합 동종 판별 x instanceof String ? x가 String 객체에 해당되는지를 확인 15 동의대 김미진

16 비교 연산 예제 5 > 3 => true 5 > 3 && 3 > 5 => false
str instanceof String => true obj instanceof System => false 결과 동의대 김미진

17 조건 연산자 조건 연산자 a = x ? y : z 조건 연산자를 이용할 때 지켜야할 사항 삼항 연산자
if else 문과 유사한 형태로 사용 가능하며 그 결과는 논리 연산 결과에 따라서 2항 또는 3항의 값으로 결정됨 조건 연산자를 이용할 때 지켜야할 사항 a = x ? y : z 와 같이 사용 x는 boolean형 또는 비교 연산을 적용 y와 z의 데이터형은 a로 변환 가능해야 함 모든 조건 연산은 if문과 비교 연산으로 대치 가능함 조건 x가 true일 경우에는 y의 값이 a에 할당되며 조건 x가 false일 경우에는 z의 값이 할당됨 a = x ? y : z 동의대 김미진

18 조건 연산자 예제 결과 y = 0 동의대 김미진

19 비트 연산자 비트 연산자 연산 속도 << 좌 쉬프트 연산자 – 값의 2배
>> 우 쉬프트 연산자 – 값의 ½배 연산 속도 곱셈 연산자 * (곱셈 연산자)는 곱셈 연산기를 이용하여 복잡함 다양한 데이터형의 곱셈 연산이 가능함 <<, >> (비트 연산자)는 단순히 레지스터의 값을 비트 단위로 이동하여 매우 빠름 2배 또는 ½배 연산만 가능함 (데이터 형 무시) 동의대 김미진

20 비트 연산자 동작 << 1비트씩 좌로 이동 (값을 2배 한 것과 동일한 효과)
>> 1비트씩 우로 이동 (값을 1/2배 한 것과 동일한 효과) 동의대 김미진

21 비트 연산자 예제 x의 값을 좌우 쉬프트하여 이진수로 표현하는 예제 결과 동의대 김미진

22 비트 논리 연산자 동의대 김미진

23 논리 비트 연산자 예제 결과 x = y = x | y = x & y = x ^ y = ~ x = 동의대 김미진

24 캐스팅 연산자와 변환 캐스팅 특정 데이터형의 값을 다른 데이터형의 값으로 변환 표현 범위가 넓은 쪽으로 자동 변환됨
byte < short < int < long float < double 표현 범위가 좁은 쪽으로는 명시적인 변환이 요구됨 L은 long을, F는 float을 나타냄 동의대 김미진

25 잘못된 캐스팅의 예 잘못된 형변환의 예 수정한 형변환의 예 L은 long형을 의미함 소수점은 기본적으로 double형
long형은 (int)로 명시적 형변환 필요 double형은 (float)로 명시적 형변환 동의대 김미진

26 연산 후 자동 형 변환 연산 후 자동 형 변환 연산 결과 오버플로우를 막기 위한 방법
연산 결과는 한 단계 높은 범위의 형으로 자동 변환됨 short형의 연산 결과는 int형 단, int형은 예외로 int형을 유지 (자주 사용되므로) boolean형은 int형으로 형변환 불가능 <컴파일 오류> <컴파일 정상 완료> <컴파일 정상 완료> 형변환 컴파일 오류 발생 동의대 김미진

27 연산자 우선 순위 간단한 연산자 우선 순위 비교 곱셉, 나눗셈이 덧셈 뺄셈보다 우선순위가 높음
우선 순위가 높은 연산자를 중심으로 연산이 수행됨 결과 * 2 = 20 (10 + 5) * 2 = 30 동의대 김미진

28 연산자 우선 순위 결합 연산자의 결합 순서 산술 연산식의 몇 가지 규칙 좌결합성 (왼쪽에서 오른쪽으로)
곱셈 * 우결합성 (오른쪽에서 왼쪽으로) 단항 증감 연산자 ++ -- 이에 따라 연산 결과가 달라짐 산술 연산식의 몇 가지 규칙 모호한 수식은 피하고, 가급적 괄호를 이용하여 명확하게 함 수식 결과가 데이터형에 따른 표현 범위의 차이 때문에 잘 못된 결과가 나오지 않도록 할 것 곱셈과 나눗셈이 동시에 있을 경우에는 곱셈을 먼저 놓는 것이 바람직함 동의대 김미진

29 연산자 결합 순서의 예 + 연산자 왼쪽에서 오른쪽으로 결합하는 좌결합성 문자열 + 숫자형 = 문자열
숫자형 + 숫자형 = 숫자형 결과 숫자형 + 연산자 = 8 문자형 + 연산자 "" = 35 동의대 김미진

30 문자 데이터형과 문자열 객체 문자와 문자열 하나의 문자 – char 형 여러 개의 문자 – char[] 형 (배열형)
문자열 – 변경되지 않은 여러 개의 문자 (객체형) 문자 문자배열 문자열 데이터형 char char[] String 특징 유니코드 모든 배열은 객체로 취급 유용한 메소드 지원됨 동의대 김미진

31 문자 표현 표현 이름 설명 '\b' BS 맨 마지막 글자 삭제 '\t' TAB 현재 커서에서 가장 가까운 지정된 곳으로 이동
'\n' LF 한 행 넘김 '\r' CR 맨 앞으로 옮김 '\'' ' 작은 따옴표 '\"' " 큰 따옴표 '\\' \ 백슬러시 동의대 김미진

32 문자 데이터형 예제 결과 동의대 김미진

33 문자배열과 문자열 비교, 변환 문자배열 char[] 문자열 String 단순한 문자 배열 특정 위치의 문자를 변경할 수 있음
문자배열을 문자열로 변경 (생성자 인자값으로 이용) new String(char[]) 문자열 String 기본적으로 자바는 String 객체로 문자열을 처리 쉽게 문자열을 이용할 수 있도록 메소드 제공 문자열의 내용은 변경 불가능함 단, 메소드를 통해서 새로운 문자열 객체를 얻을 수 있음 toUpperCase(), toLowerCase() 문자열을 문자배열로 바꾸는 메소드 toCharArray() 동의대 김미진

34 문자열과 문자배열 예제 결과 동의대 김미진

35 String과 StringBuffer 클래스
문자열 객체 문자열 수정 불가능 + 연산자를 이용하여 새로운 문자열 객체 생성 StringBuffer 클래스 문자열 버퍼 객체 문자열 추가 변경 가능 append() 메소드를 이용하여 문자(열) 추가 동의대 김미진

36 String 예제 결과 동의대 김미진

37 StringBuffer 예제 결과 동의대 김미진

38 제어문 프로그램의 제어 구조 제어 구조의 영향 연속적인 실행 – sequence 실행 순서에 의한 순차적인 실행
판단(결정) – decision 수식 평가 결과 에 따른 실행 순서의 변경 반복 – iteration 조건이 없거나 또는 주어진 조건에 의한 구간 반복 제어 구조의 영향 절차 지향 언어 – 전체 메소드/변수 객체 지향 언어 – 클래스 내부 메소드/변수 동의대 김미진

39 절차 지향과 객체 지향의 차이 절차 지향 메모리 직접 접근 객체 지향 메모리는 메소드를 통한 간접 접근 동의대 김미진

40 제어문 로직 순서적인 실행 판단과 선택 반복 문장에 의해서 구분 세미콜론 (;)으로 구별 조건에 따른 시퀀스 변경
if-then-else, case, switch 반복 조건이 만족할 때 까지 반복 {}로 구분 while, do while, for 동의대 김미진

41 제어 구조 예제 (순서적인 실행, 반복) 순서적인 실행 반복 (while) 반복 (do-while) 반복 (for)
동의대 김미진

42 판단문 – if-then-else if-then-else
동의대 김미진

43 판단문 문법과 예제 – if-then-else
결과 동의대 김미진

44 다중 판단문 – if-then-else-if
조건이 false이고 새로운 조건이 나오면 다시 else 뒤에 if가 다시 올 수 있음 동의대 김미진

45 다중 판단문 형식 – if-then-else-if
동의대 김미진

46 다중 판단문 예제 – if-then-else-if
결과 동의대 김미진

47 중첩 판단문 –if-then-if-else
조건이 참일 때 다시 조건문이 등장하는 형태 특별한 거짓 조건에 대한 문장이 없으면 else 생략 동의대 김미진

48 중첩 판단문 문법 – if-then-if-else
동의대 김미진

49 중첩 판단문 예제 – if-then-if-else
결과 동의대 김미진

50 분기문 – switch-case switch-case 조건이 수식의 참과 거짓이 아니라 여러 개의 정수로 구분될 수 있는 경우
다중 선택이 가능한 조건문 switch 조건과 case 상수가 일치할 경우에 case 이하 수행 break; 문을 통하여 탈출 break가 없으면 이하 case문 수행 default는 어떤 조건도 만족하지 못하였을 경우에 수행하는 영역으로 생략 가능 동의대 김미진

51 분기문 문법 – switch-case 수식1 == 상수1 수식1 == 상수2 수식1 == 상수3 어떤 조건도 안 맞았을 경우
동의대 김미진

52 분기문 예제 – switch-case 결과 동의대 김미진

53 반복문 반복문 종류 반복문의 4가지 요소 do while 문장 블록 1회 실행 후 조건 확인 while 조건 확인 후 반복
for 초기 값, 조건, 증가분으로 이루어진 반복 문 반복문의 4가지 요소 초기화 조건 만족 확인 반복할 코드 블록 반복 수행 후 갱신 코드 동의대 김미진

54 반복문 – do-while do while 적어도 한번 수행 조건이 참이 되면 반복, 거짓이면 반복 종료
항상 참이면 무한 루프 발생 초기화 반복 시퀀스 do ~ while 영역 true 조건 false 시퀀스 동의대 김미진

55 반복문 문법 – do-while 동의대 김미진

56 반복문 예제 – do-while 결과 동의대 김미진

57 반복문 - while while 반복을 시작하기 전에 조건이 참인지 확인 조건이 참이 아니면 반복 구간 실행하지 않음
초기화 false 조건 while 영역 true 반복 시퀀스 시퀀스 동의대 김미진

58 반복문 문법 - while 동의대 김미진

59 반복문 예제 - while 결과 동의대 김미진

60 반복문 - for for 초기화 코드, 반복 조건, 반복 선택 코드를 한꺼번에 기술
단순화된 형태로 반복문의 4가지 요소를 표현 초기화 false 조건 for 영역 true 반복 시퀀스 시퀀스 동의대 김미진

61 반복문 문법 - for 동의대 김미진

62 반복문 예제 - for 결과 동의대 김미진

63 break와 continue break continue 반복문 조건과 상관없이 코드 블록을 빠져나오는 명령 반복문 종료
코드 블록에서 바로 조건을 비교하도록 하는 명령 중간 반복 구간의 실행을 생략하고 다시 조건 비교 동의대 김미진

64 break문 예제 결과 동의대 김미진

65 continue문 예제 결과 동의대 김미진

66 레이블의 이용 레이블의 이용 break문과 continue문과 함께 사용하여 특정 위치로 이동시키는 기능을 담당
레이블의 정의는 이름 뒤에 콜론 (:)을 이용 동의대 김미진

67 레이블 예제 – break 결과 동의대 김미진

68 레이블 예제 - continue 결과 동의대 김미진

69 요약 연산자 문자열 제어문 프로그래밍 언어의 기본 연산자 우선순위와 결합성이 존재
char[], String, StringBuffer 문자배열, 문자열, 문자열 버퍼 제어문 연속적인 실행 – sequence 판단문 – if-then-else, switch-case 반복문 – do while, while, for 동의대 김미진

70 Thank You !


Download ppt "자바 프로그래밍 입문 : 객체지향적 사고법 chapter 04. 연산자와 제어문."

Similar presentations


Ads by Google