제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf ·...

28
Lecture 03 제어문과 메소드 Kwang-Man Ko [email protected] , compiler.sangji.ac.kr Department of Computer Engineering Sang Ji University 2018

Transcript of 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf ·...

Page 1: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

Lecture 03

제어문과메소드

Kwang-Man Ko

[email protected], compiler.sangji.ac.kr

Department of Computer Engineering

Sang Ji University

2018

Page 2: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

2Lecture 03: 제어문과 메소드, [email protected]

제어문

n 필요성

Page 3: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

3Lecture 03: 제어문과 메소드, [email protected]

제어문

n 제어문은 실행문의 수행 순서를 변경

n 종류

l 조건문, 반복문, 분기문

Page 4: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

4Lecture 03: 제어문과 메소드, [email protected]

조건문

n 조건에 따라 실행문을 선택을 할 때 사용

Page 5: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

5Lecture 03: 제어문과 메소드, [email protected]

조건문

n 단순 if 문

l 예제 : sec02/SimpleIfDemo.java

Page 6: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

6Lecture 03: 제어문과 메소드, [email protected]

조건문

n if~else 문

l 예제 : sec02/IfElseDemo.java

Page 7: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

7Lecture 03: 제어문과 메소드, [email protected]

조건문

n 다중 if 문

l 예제 : sec02/MultiIfDemo.java

Page 8: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

8Lecture 03: 제어문과 메소드, [email protected]

조건문

n 중첩 if 문

l if 문에 다른 if 문이 포함되는 것을 중첩 if 문이라고 한다

l 주의 사항

l 예제 : sec02/NestedIfDemo.java

Page 9: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

9Lecture 03: 제어문과 메소드, [email protected]

조건문

n switch 문

Page 10: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

10Lecture 03: 제어문과 메소드, [email protected]

조건문

n switch 문

l 0개 이상의 case 절과 0이나 1개의 default 절로 구성

l 연산식으로 정수 타입만 사용할 수 있었지만, JDK 7부터는 문자열과 열거 타입도 사용 가능

Page 11: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

11Lecture 03: 제어문과 메소드, [email protected]

조건문

n switch 문

l 예제 : sec02/Switch1Demo.java

l 예제 : sec02/Switch2Demo.java

l 예제 : sec02/Switch3Demo.java

l 예제 : sec02/Switch4Demo.java

Page 12: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

12Lecture 03: 제어문과 메소드, [email protected]

반복문

n 조건에 따라 같은 처리를 반복

n 종류

Page 13: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

13Lecture 03: 제어문과 메소드, [email protected]

반복문

n while 문

Page 14: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

14Lecture 03: 제어문과 메소드, [email protected]

반복문

n while 문

l 예제 : sec03/While1Demo.java

l 예제 : sec03/While2Demo.java

Page 15: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

15Lecture 03: 제어문과 메소드, [email protected]

반복문

n do~while 문

Page 16: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

16Lecture 03: 제어문과 메소드, [email protected]

반복문

n do~while 문

l 예제 : sec03/DoWhile1Demo.java

l 예제 : sec03/DoWhile2Demo.java

l 예제 : sec03/DoWhile3Demo.java

Page 17: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

17Lecture 03: 제어문과 메소드, [email protected]

반복문

n for 문

Page 18: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

18Lecture 03: 제어문과 메소드, [email protected]

반복문

n for 문

Page 19: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

19Lecture 03: 제어문과 메소드, [email protected]

반복문

n for 문

l 예제 : sec03/For1Demo.java

l 예제 : sec03/For2Demo.java

Page 20: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

20Lecture 03: 제어문과 메소드, [email protected]

분기문

n break 문

l 예제 : sec04/BreakDemo.java

Page 21: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

21Lecture 03: 제어문과 메소드, [email protected]

분기문

n continue 문

l 예제 : sec04/ContinueDemo.java

Page 22: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

22Lecture 03: 제어문과 메소드, [email protected]

메서드

n 필요성

l 메서드를 이용하지 않은 예제 : sec05/Method1Demo.java

l 메서드를 이용한 예제 : sec05/Method2Demo.java

n 메서드를 이용하면 얻을 수 있는 장점

l 중복 코드를 줄이고 코드를 재사용할 수 있다.

l 코드를 모듈화해 가독성을 높이므로 프로그램의 품질을 향상시킨다.

Page 23: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

23Lecture 03: 제어문과 메소드, [email protected]

메서드

n 메서드의 구조

Page 24: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

24Lecture 03: 제어문과 메소드, [email protected]

메서드

n 메서드의 호출과 반환

l 메서드를 호출하면 제어가 호출된 메서드(callee)로 넘어갔다가 호출된 메서드의 실행을 마친후 호출한 메서드(caller)로 다시 돌아온다. 단, return 문을 사용하면 다음과 같이 메서드의 실행도중에도 호출한 메서드로 제어를 넘길 수 있다.

l 예제 : sec05/ReturnDemo.java

Page 25: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

25Lecture 03: 제어문과 메소드, [email protected]

메서드

n 메서드의 매개변수

l 예제 : sec05/EchoDemo.java

Page 26: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

26Lecture 03: 제어문과 메소드, [email protected]

메서드

n 값 전달(call by value)

l 예제 : sec05/IncrementDemo.java

Page 27: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

27Lecture 03: 제어문과 메소드, [email protected]

메서드

n 메서드 오버로딩

l 메서드 시그너처(Method Signature) : 메서드 이름과 매개변수의 개수, 데이터 타입, 순서를 의미

l 메서드 이름은 같지만 메서드 시그니처가 다른 메서드를 정의하는 것을 메서드 오버로딩(Method Overloading)이라고 한다.

l 예제 : sec05/OverloadDemo.java

Page 28: 제어문과메소드 - Sangji Universitycompiler.sangji.ac.kr/lecture/java/2018/lecture03.pdf · n단순if 문 l예제: sec02/SimpleIfDemo.java. Lecture 03: 제어문과메소드,

Q & A