1. 연산자
단항연산자
- +, -, !, ~, ++, -- 등
- !는 bool형에서만 사용
산술연산자
- *, /, %, +, -
- string에서는 +로 문자열 연결 가능
- 참고사항
- 수치형 + "문자열" = "문자열"
- "문자열" + "문자열"은 메모리를 많이 차지한다
- 문자열은
참조 형식
으로 위의 방식을 사용하면 Heap
에 3개의 문자열이 메모리를 차지하게 된다.
시프트 연산자와 관계연산자
- <<, >>, <=, >=, >, <, ==, !=
is 연산자
- 형식 호환을 조사하는 연산자
변수 is 클래스형|데이터형;
object
와 하위의 다른 데이터형(int, float)는 호환O
- 동일 계층의 데이터형(int, float)끼리는 호환X
if (objVar is int)
Console.WriteLine("UnBoxing 호환O");
as 연산자
- 형변환과 변환조사
- 캐스트 연산자의 역할, 불변환은 null리턴
결과형 = 참조형, 언박싱, 박싱 as 변환형
string str2 = objVar as string;
비트&논리연산자
비트연산자
- &, |, ~, ^
- and, or, not, xor
논리연산자
null 병합 연산자
- ??: null 조사
c = A ?? B
- A가 null이 아니면 A를 C에 대입
- A가 null이면 B를 C에 대입
2. 제어문
if ~ else
if (조건1)
Console.WriteLine("첫번째내용");
else if (조건2)
Console.WriteLine("두번째내용");
else
Console.WriteLine("세번째내용");
switch, case, break
- 정수, 문자상수, 문자열 가능
- 모든 case와 default에는 break가 반드시 있어야 함
switch(데이터)
{
case 1:
Console.WriteLine("첫번째내용");
break;
case '1':
Console.WriteLine("두번째내용");
break;
default:
Conosole.WriteLine("세번째내용");
break;
}
3. 반복문
for(변수;조건;증감)
for (int i = 0; i < 10; i++)
Console.WriteLine("{0}번째 반복시행 중", i);
foreach(변수 in 컨테이너형)
forreach(int i in 정수배열)
Console.WriteLine(i)
while 반복문
while(조건){내용}
, do{내용}while(조건)
4. 점프문
- goto, continue, return, break
goto
- 해당 키워드의 위치로 이동한다
- 과거부터 문법해석과 디버깅을 방해하기 때문에 많이 사용하지 말라고 한다
- 하지만 다중 반복문 등에서 한 번에 빠져나올 수 있는 경우는 사용을 권장한다
start:
Console.WriteLine("현재 숫자: " + number);
number++;
if (number <= 5)
goto start;
5. 예외처리문
try~catch
try
{
}
catch(예외처리객체 e)
{
}
참고사항
- try문 안에서 초기화한 변수를 try문 밖에서 사용할 수 없다
int m; try{m=12;} ... Console.Write(m);
은 오류 발생
-> int m=0; try{m=12;} ... Console.Write(m);
은 사용 가능
- System.Exception의 파생객체만 사용가능
- OverFlowException
- FormatException
- DivideByZeroException
- FileNotFoundException
- IndxOutOfRangeException
try~catch~finally
- finally: 예외 발생과 상관없이 항상 실행되는 구문
- 예외처리에 실패하면 프로그램이 바로 종료, 정지, 문제가 발생하는데 finally구문으로 해당 실행을 강제할 수 있다
- ex. SQL을 활용하고 나서 finally에 sql 종료구문 추가
- ex. 영상처리 중 웹캠 종료
throw
6. 정리
- 대부분의 연산자는 C,C++언어와 같음
- C#에서 새롭게 등장한 연산자
- 반복문
for
, while
, do~while
, foreach
(=python의 for)
- 예외처리문
try~catch~finally
(=python의 try~exception~finally)
throw
(=python의 raise)
7. Reference