오늘 학습 키워드

C# 기본, C# 문법 기초

오늘 학습 한 내용을 나만의 언어로 정리하기

C#과 .Net Framework

  • C# : 객체 지향 프로그래밍 언어. 강력한 형식 시스템과 가비지 컬렉션 기능이 특징
  • .Net Framework : 프로그래밍 플랫폼. 코드 컴파일 중간언어 각 머신에 맞는 언어로 변환함

C# 프로젝트 실행파일 위치

  • 프로젝트 폴더\bin\Debug\net8.0\프로젝트명.exe

전역 Using

  • 상단에 프로젝트 프로젝트명 속성 전역 using

자주 사용되는 부분을 알아서 추가해 둠

C# 기초 문법

출력

  • Console.WriteLine() : 출력 후 줄넘김
  • Console.Wirte() : 출력
  • 이스케이프 시퀀스
이스케이프 시퀀스설명
\‘작은따옴표(’) 삽입
\“큰따옴표(”) 삽입
\\역슬래시() 삽입
\n새 줄(줄바꿈) 삽입
\r현재 줄 맨 앞으로 이동
\t탭 삽입
\b백스페이스 삽입

주석

  • // : 한 줄 주석

  • /* */ : 여러 줄 주석

  • 참고 :

    • Ctrl + K, C : 주석 달기
    • Ctrl + K, U : 주석 풀기

자료형

  • 자주 사용되는 자료형 (바이트는 운영체제에 따라 다를 수 있음)
데이터타입이름.Net 데이터타입바이트
정수intSystem.Int324
정수longSystem.Int648
실수floatSystem.Single4
실수doubleSystem.Double8
문자charSystem.Char2
문자열StringSystem.String?
불리언boolSystem.Boolean1
  • 자료형을 세분화하면 메모리를 효율적으로 사용할 수 있고, 데이터를 정확하게 표현할 수 있으며, 타입 안정성을 지킬 수 있다.

리터럴

  • 프로그램에서 우리가 직접 쓰는 상수값. (ex. 10, a, 3.14)
  • 정수형 리터럴
표현데이터 타입
10int
0x1016진수 int
0b102진수 int
10Llong
10ULUnsigned Long
  • 부동소수점형 리터럴
표현데이터 타입
3.14double
3.14ffloat
3.14mdecimal
  • 문자형 리터럴
표현데이터 타입
’A’char
’\n’개행 문자
’\u0022’유니코드 문자

변수

  • 선언
자료형 변수명;
  • 초기화
변수명 = 값;
  • 선언 및 초기화
자료형 변수명 = 값;
// 한 번에 여러 변수를 같은 값으로 초기화
자료형 변수명1 = 변수형2 = 변수형3 = 값;
  • 변수명 규칙

    1. C#에서 이미 예약된 단어들인 키워드를 포함하면 안된다.
    2. 첫 글자로 숫자를 쓸 수 없음.
    3. 알파벳, 언더스코어(_), 숫자를 사용할 수 있음.
    4. 대소문자를 구분함
  • 코드 컨벤션 : 개발자끼리 약속한 코드 작성 규칙

    1. 식별자 표기법
      • PascalCase : 클래스, 메소드, 프로퍼티 이름에서 사용. 첫글자 대문자, 뒤로도 대문자.
      • camelCase : 변수명으로 사용. 첫 글자 소문자, 뒤로는 대문자.
      • 대문자 약어 : ID, HTTP, FTP 등은 전체 문자가 대문자임
    2. 들여쓰기 : 탭 or 스페이스바 4칸으로 코드 블록을 들여씀
    3. 중괄호 위치 : 항상 새 줄에서 시작
    4. 빈 줄 사용 : 관련 없는 코드 사이에 빈 줄로 구분. 메소드, 클래스 등 블록 사이는 빈 줄 두 줄로 구분.
    5. 주석 : 주로 한 줄 주석 사용. 여러 줄 주석 쓸 때에는 /* 를 빈 줄에서 시작해서 */ 도 빈 줄에서 끝냄
  • 형변환 (casting)

    • 자료형이 다른 변수 간에 값을 할당하거나 연산을 수행하는 것.
    • 명시적 형변환 : (자료형) 형식으로 앞에 붙여 사용하는 것.
    • 암시적 형변환 : 작은 데이터 타입에서 더 큰 데이터 타입으로 대입하는 경우 알아서 수행됨.
byte num1 = 10;
int num2 = num1; // byte -> int 암시적으로 형변환

참고 : 정수형과 부동소수점형 간의 연산을 수행하는 경우 그 결과는 부동소수점형으로 변환됨.

입력

  • Console.ReadLine() : 한 줄 입력 받음. 반환값은 String
  • string.Split(’ ’) : 문자열을 구분하여 배열로 반환. 매개변수는 구분자

var

  • C# 3.0부터 추가된 기능
  • var 키워드를 사용하면 초기화하려는 값의 자료형에 따라 변수의 자료형이 결정됨.
var num = 10; // num = int
var name = "hyerim"; // name = string
var pi = 3.141592; // pi = double
  • 변수를 선언하는 시점에서 변수의 자료형을 정확히 알 수 없는 경우에 유용하게 사용할 수 있음

연산자

  • 산술 연산자 : 숫자를 대상으로 사용되는 연산자
연산자설명
+덧셈
-뺄셈
*곱셈
/나눗셈
%나머지
  • 관계 연산자 : 두 값을 비교해 True 또는 False로 결과가 나오는 연산자
연산자설명
==같음
!=다름
>
<작음
>=크거나 같음
작거나 같음
  • 논리 연산자 : 비교하는 대상이 True 또는 False
연산자설명
&&논리곱(AND)
||논리합(OR)
!논리부정(NOT)
  • 비트 연산자 : 데이터를 비트 단위로 연산함
연산자설명
& (AND)두 비트 값이 모두 1일 때 1을 반환
(OR)두 비트 값 중 하나라도 1일 때 1을 반환
^ (XOR)두 비트 값이 서로 다를 때 1을 반환
~ (NOT)비트 값의 보수(complement)를 반환
<< (왼쪽 시프트)비트를 왼쪽으로 이동
>> (오른쪽 시프트)비트를 오른쪽으로 이동
  • 복합 대입 연산자 : 할당을 하는 대입 연산자에 산술 연산자를 더해 동시에 수행
연산자예시설명
+=x += y;x = x + y;
-=x -= y;x = x - y;
*=x *= y;x = x * y;
/=x /= y;x = x / y;
%=x %= y;x = x % y;
  • 증감 연산자 : 변수의 값을 1 증가시키거나 감소시킴
연산자설명
++1 증가
1 감소
  • 연산자 우선순위
    1. 괄호 ()
    2. 단항 연산자(++, —, +, -, ! )
    3. 산술 연산자(*, /, %, +, -)
    4. 시프트 연산자(<<, >>)
    5. 관계 연산자(<, >, , >=, ==, !=)
    6. 논리 연산자(&&, ||)
    7. 할당 연산자(=, +=, -=, *=, /= )

문자열 처리

  • 문자열 생성
string str1 = "Hello World"; // 리터럴 문자열 사용
string str2 = new string('H', 5); // 문자 'H'를 다섯 번 쓴 문자열 생성
  • 문자열 연결
    • 무겁기 때문에, +로 연결하는 것은 비추천
string str1 = "Hello";
string str2 = "World";
string str3 = str1 + " " + str2; // + 연산자로 연결
  • 문자열 분할
string str = "Hello World";
string[] words = str.Split(' '); // 공백을 기준으로 분할하여 문자열 배열에 저장
  • 문자열 검색
string str = "Hello, World!";
int index = str.IndexOf("World"); // 첫 번째로 등장하는 위치의 인덱스를 반환
  • 문자열 대체
string str = "Hello, World!";
string newStr = str.Replace("World", "Universe");
  • 문자열을 숫자로 변환
string str = "123";
int num = int.Parse(str);
  • 숫자를 문자열로 변환
int num = 123;
string str = num.ToString();
  • 문자열 값 비교
string str1 = "Hello";
string str2 = "World";
bool isEqual = str1 == str2
  • 문자열 대소 비교
string str1 = "Apple";
string str2 = "Banana";
int compare = string.Compare(str1, str2); // 사전식 비교. 
// str1 < str2 = 0 미만
// str1 == str2 = 0
// str1 > str2 = 0 초과
  • 문자열 형식화
string name = "John";
int age = 30;
string message = string.Format("My name is {0} and I'm {1} years old.", name, age);
  • 문자열 보간
string name = "John";
int age = 30;
string message = $"My name is {name} and I'm {age} years old.";

내일 학습 할 것은 무엇인지

조건문과 반복문 학습