c# language 3

22
C# LANGUAGE - 3 GROW Common Study

Upload: -

Post on 13-Apr-2017

63 views

Category:

Software


1 download

TRANSCRIPT

Page 1: C# language   3

C# LANGUAGE - 3GROW Common Study

Page 2: C# language   3

CONTENTS Control Statements

Branch if switch Ternary operators

Repeat while for do-while foreach Parallel Repeat methods

Page 3: C# language   3

CONTROL STATE-MENTSGROW Common Study

Page 4: C# language   3

CONTROL STATEMENTS 제어 취소문

break switch 및 모든 반복문의 제어를 취소하는 명령어 if 및 병렬 반복 메서드의 제어 취소는 할 수 없다 break; 만으로 제어가 취소됨 한 번의 break 로는 하나의 제어문만 취소할 수 있다

두 개 이상의 제어문을 한번에 취소할 수 없다

Page 5: C# language   3

CONTROL STATEMENTS 조건 분기문

if 하나의 조건을 이용해서 두 갈래의 코드로 나눌 때 사용 조건은 true 또는 false 의 결과로 나올 수 있어야 한다 if-else 의 모양으로 많이 쓰이지만 if 단독으로 쓰이기도 한다

switch 하나의 변수의 값에 따라 여러 갈래의 코드로 나눌 때 사용 비교할 값은 정수 , 실수 , 문자 , 문자열 , enum 만 가능하다 case 내에 내용이 존재할 경우 반드시 break 로 case 를 끝내야 한다 특수 case 인 default 를 이용하여 그 외의 case 를 처리할 수 있다

Page 6: C# language   3

CONTROL STATEMENTS 조건 분기문

if 형태 단일 if 문만 사용할 수 있다 if-else 를 모두 사용할 수 있다 중첩 if 문을 사용할 수 있다

Page 7: C# language   3

CONTROL STATEMENTS 조건 분기문

if

Page 8: C# language   3

CONTROL STATEMENTS 조건 분기문

switch 형태 변수가 가질 수 있는 값에 대한 검사를 실행 각 검사 값은 case 로서 존재한다 각 case 는 break 로 끝나야 한다 연속 case 는 맨 마지막 case 에만 실행할 명령이들어가야 한다 어떤 case 에도 들어가지 않는 값이 있는 경우default case 가 처리된다

Page 9: C# language   3

CONTROL STATEMENTS 조건 분기문

switch

Page 10: C# language   3

CONTROL STATEMENTS 조건 분기문

삼항 연산자 한 줄에서 어떤 조건에 대해 각기 다른 값을 넣어줘야 할 때 사용 삼항 연산자를 중첩하여 사용할 수는 있지만 코드 가독성이 떨어질 수 있다 양쪽 값은 똑같은 자료형으로 이루어져있어야 한다

Null 결합 연산자 어떤 변수가 null 이냐 아니냐에 따라 변수에 해당 변수의 값을 넣어주거나 다른 값을 넣어줄 수 있는 연산자 Null 연산자를 중첩하여 사용할 수는 있지만 코드 가독성이 떨어질 수 있다 . 양쪽 값은 똑같은 자료형으로 이루어져 있어야 한다

Page 11: C# language   3

CONTROL STATEMENTS 조건 분기문

삼항 연산자

Page 12: C# language   3

CONTROL STATEMENTS 조건 분기문

Null 결합 연산자

Page 13: C# language   3

CONTROL STATEMENTS 반복문

while 어떤 조건이 충족되면 내부 식을 반복 수행한다

do-while while 과 동일하나 조건을 확인하는 부분이 내부 식이 끝난 부분에 있기 때문에 일단 내부 식을 한번 실행 후 while 과 동일한 기능을 수행한다

for while 의 기능과 같은 역할을 하지만 조건에 사용할 변수의 초기화와 변수 값의 증감이 가능하다

Page 14: C# language   3

CONTROL STATEMENTS 반복문

while

Page 15: C# language   3

CONTROL STATEMENTS 반복문

do-while

Page 16: C# language   3

CONTROL STATEMENTS 반복문

for

Page 17: C# language   3

CONTROL STATEMENTS 반복문

foreach 어떤 열거자 (IEnumerator) 를 처음부터 끝까지 가져와 처리할 수 있도록 해준다

열거자는 배열에도 적용돼있으므로 배열에 대해서 foreach 를 쓸 수 있다 기본적으로 구현된 열거자도 지원되지만 사용자가 직접 구현한 열거자도 지원된다 C# 에서 가장 많이 애용되는 반복문이다

대부분의 경우 for 보다 foreach 가 더 빠르다 boxing-unboxing 문제가 발생하지 않는 경우 가장 빠른 반복문이다

Page 18: C# language   3

CONTROL STATEMENTS 반복문

foreach

Page 19: C# language   3

CONTROL STATEMENTS 반복문

병렬 반복 메서드 멀티코어를 이용하여 반복문을 흉내내는 메서드 사용을 잘못하면 멀티코어를 사용함에도 불구하고 속도가 나오지 않을 수 있다

동기화를 위한 Lock 의 사용 잦음 등 동기화에 상관 없이 사용한다면 듀얼 코어 CPU 사용 시 속도가 최대

1.99 배 정도 향상될 수 있다 스레드를 관리하는 비용 때문에 2 배 이상 향상되기는 어렵다

스레드는 두 개 이상의 메서드를 동시에 실행하기 위한 기능 싱글코어 CPU 사용 시 속도가 오히려 더 떨어지게 된다

이 메서드는 데스크톱에서만 , .NET Framework 4.0 이상에서 사용할 수 있다

Page 20: C# language   3

CONTROL STATEMENTS 반복문

병렬 반복 메서드 Parallel.For

for 를 흉내내는 병렬 반복 메서드 Parallel.ForEach

foreach 를 흉내내는 병렬 반복 메서드 두 메서드는 이름 없는 메서드 또는 델리게이트를 공부해야 사용이 가능하므로 추후 다시 다루겠음

Page 21: C# language   3

HOMEWORKGROW Common Study

Page 22: C# language   3

HOMEWORK 다음과 같은 무한 계산 프로그램 만들기

1 을 누르면 10 이 증가 , 2 를 누르면 10 이 감소한다 그 외의 입력 시 프로그램이 종료되면서 계산된 결과를 출력