4강. C# 기본 문법

InSung-Na·2023년 7월 27일
0

나우캠퍼스_C#

목록 보기
5/7
post-thumbnail

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;
//objVar를 string형으로 변경할 수 있으면 (string)objVar가 str2에 저장됨
//형변환을 못하면 null 저장

비트&논리연산자

비트연산자

  • &, |, ~, ^
  • and, or, not, xor

논리연산자

  • &&, ||, !
  • and, or, not

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#에서 새롭게 등장한 연산자
    • is, as, null
  • 반복문
    • for, while, do~while, foreach(=python의 for)
  • 예외처리문
    • try~catch~finally(=python의 try~exception~finally)
    • throw(=python의 raise)

7. Reference

0개의 댓글