c# language 3
TRANSCRIPT
C# LANGUAGE - 3GROW Common Study
CONTENTS Control Statements
Branch if switch Ternary operators
Repeat while for do-while foreach Parallel Repeat methods
CONTROL STATE-MENTSGROW Common Study
CONTROL STATEMENTS 제어 취소문
break switch 및 모든 반복문의 제어를 취소하는 명령어 if 및 병렬 반복 메서드의 제어 취소는 할 수 없다 break; 만으로 제어가 취소됨 한 번의 break 로는 하나의 제어문만 취소할 수 있다
두 개 이상의 제어문을 한번에 취소할 수 없다
CONTROL STATEMENTS 조건 분기문
if 하나의 조건을 이용해서 두 갈래의 코드로 나눌 때 사용 조건은 true 또는 false 의 결과로 나올 수 있어야 한다 if-else 의 모양으로 많이 쓰이지만 if 단독으로 쓰이기도 한다
switch 하나의 변수의 값에 따라 여러 갈래의 코드로 나눌 때 사용 비교할 값은 정수 , 실수 , 문자 , 문자열 , enum 만 가능하다 case 내에 내용이 존재할 경우 반드시 break 로 case 를 끝내야 한다 특수 case 인 default 를 이용하여 그 외의 case 를 처리할 수 있다
CONTROL STATEMENTS 조건 분기문
if 형태 단일 if 문만 사용할 수 있다 if-else 를 모두 사용할 수 있다 중첩 if 문을 사용할 수 있다
CONTROL STATEMENTS 조건 분기문
if
CONTROL STATEMENTS 조건 분기문
switch 형태 변수가 가질 수 있는 값에 대한 검사를 실행 각 검사 값은 case 로서 존재한다 각 case 는 break 로 끝나야 한다 연속 case 는 맨 마지막 case 에만 실행할 명령이들어가야 한다 어떤 case 에도 들어가지 않는 값이 있는 경우default case 가 처리된다
CONTROL STATEMENTS 조건 분기문
switch
CONTROL STATEMENTS 조건 분기문
삼항 연산자 한 줄에서 어떤 조건에 대해 각기 다른 값을 넣어줘야 할 때 사용 삼항 연산자를 중첩하여 사용할 수는 있지만 코드 가독성이 떨어질 수 있다 양쪽 값은 똑같은 자료형으로 이루어져있어야 한다
Null 결합 연산자 어떤 변수가 null 이냐 아니냐에 따라 변수에 해당 변수의 값을 넣어주거나 다른 값을 넣어줄 수 있는 연산자 Null 연산자를 중첩하여 사용할 수는 있지만 코드 가독성이 떨어질 수 있다 . 양쪽 값은 똑같은 자료형으로 이루어져 있어야 한다
CONTROL STATEMENTS 조건 분기문
삼항 연산자
CONTROL STATEMENTS 조건 분기문
Null 결합 연산자
CONTROL STATEMENTS 반복문
while 어떤 조건이 충족되면 내부 식을 반복 수행한다
do-while while 과 동일하나 조건을 확인하는 부분이 내부 식이 끝난 부분에 있기 때문에 일단 내부 식을 한번 실행 후 while 과 동일한 기능을 수행한다
for while 의 기능과 같은 역할을 하지만 조건에 사용할 변수의 초기화와 변수 값의 증감이 가능하다
CONTROL STATEMENTS 반복문
while
CONTROL STATEMENTS 반복문
do-while
CONTROL STATEMENTS 반복문
for
CONTROL STATEMENTS 반복문
foreach 어떤 열거자 (IEnumerator) 를 처음부터 끝까지 가져와 처리할 수 있도록 해준다
열거자는 배열에도 적용돼있으므로 배열에 대해서 foreach 를 쓸 수 있다 기본적으로 구현된 열거자도 지원되지만 사용자가 직접 구현한 열거자도 지원된다 C# 에서 가장 많이 애용되는 반복문이다
대부분의 경우 for 보다 foreach 가 더 빠르다 boxing-unboxing 문제가 발생하지 않는 경우 가장 빠른 반복문이다
CONTROL STATEMENTS 반복문
foreach
CONTROL STATEMENTS 반복문
병렬 반복 메서드 멀티코어를 이용하여 반복문을 흉내내는 메서드 사용을 잘못하면 멀티코어를 사용함에도 불구하고 속도가 나오지 않을 수 있다
동기화를 위한 Lock 의 사용 잦음 등 동기화에 상관 없이 사용한다면 듀얼 코어 CPU 사용 시 속도가 최대
1.99 배 정도 향상될 수 있다 스레드를 관리하는 비용 때문에 2 배 이상 향상되기는 어렵다
스레드는 두 개 이상의 메서드를 동시에 실행하기 위한 기능 싱글코어 CPU 사용 시 속도가 오히려 더 떨어지게 된다
이 메서드는 데스크톱에서만 , .NET Framework 4.0 이상에서 사용할 수 있다
CONTROL STATEMENTS 반복문
병렬 반복 메서드 Parallel.For
for 를 흉내내는 병렬 반복 메서드 Parallel.ForEach
foreach 를 흉내내는 병렬 반복 메서드 두 메서드는 이름 없는 메서드 또는 델리게이트를 공부해야 사용이 가능하므로 추후 다시 다루겠음
HOMEWORKGROW Common Study
HOMEWORK 다음과 같은 무한 계산 프로그램 만들기
1 을 누르면 10 이 증가 , 2 를 누르면 10 이 감소한다 그 외의 입력 시 프로그램이 종료되면서 계산된 결과를 출력