C# 문법 1주차 - 변수와 자료형

Amberjack·2023년 12월 29일
0

C# 문법

목록 보기
7/44
post-thumbnail

🔢 기본 자료형 소개

C# 형식 키워드.NET 형식크기범위
boolSystem.Boolean1true 또는 false
byteSystem.Byte10~255
intSystem.Int324-2,147,483,648 ~ 2,147,483,647
longSystem.Int648-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
floatSystem.Single4±1.5 × 10^-45 ~ ±3.4 × 10^38
doubleSystem.Double8±5.0 × 10^-324 ~ ±1.7 × 10^308
charSystem.Char2유니코드 문자
stringSystem.String유니코드 문자열

변수를 세분화해서 사용하는 이유?

  • 메모리의 효율적인 사용
    해당 자료형이 필요한 크기만큼의 메모리를 할당하여 메모리 절약
  • 정확한 데이터 표현
    데이터의 특성에 따라 정확한 표현이 가능! ex) float와 double
  • 타입 안정성
    코드의 타입 안정성을 유지할 수 있다. ex) byte를 사용했는데 값의 범위가 벗어날 경우, 에러 발생!

✏️ 리터럴(Literal)

📌 리터럴의 개념과 역할

  • 프로그램에서 상요되는 상수 값. 소스 코드에 직접 기록되어 있는 값
  • C#에서 리터럴은 컴파일러에 의해 상수 값으로 처리, 변수나 상수에 할당되거나 연산에 사용됨.

👉 소스코드에 하드 코딩된 값!

int num = 10;
float f = 3.14f;
char c = 'A';
string str = "Hello, World!";

int num1 = 0x10;
int num2 = 0b1010;
long num3 = 100000000000000L;

📖 변수 선언과 초기화

🤔 변수?

  • 데이터를 저장하고 사용하기 위해 할당받은 공간
  • 필요에 따라 데이터를 저장, 수정

🙃 변수 선언?

C#에서 변수를 선언하는 방법 :

자료형 변수이름;

ex) int형 변수 선언하기

int num;
int num1, num2, num3;

😎 변수 초기화?

변수를 선언한 후, 변수를 초기화하여 값을 저장!

변수이름 = 값;

ex) 변수를 선언하고 초기화하기

int num;
num = 10;

int num1 = 100;

📛 변수명

변수를 선언할 때, 이름을 규칙에 따라 만드는 것이 좋다!

⌨️ 키워드(Keywords)

  • C#에서 이미 예약된 단어들. 키워드들은 변수나 메소드 등 이름을 정할 때 사용할 수 없다.
    ex)

    abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual void volatile while

🥸 식별자(Identifiers)

  • 식별자란 변수, 메소드, 클래스, 인터페이스 등에 사용되는 이름들. 키워드와 마찬가지로 이름 짓기에 사용할 수 없다. 👉 이미 지어진 이름을 다시 사용할 수 없다!

식별자를 사용할 때는 다음과 같은 규칙을 따라야 함!!!

  • 첫 문자는 알파벳, 언더스코어 '_'가 올 수 있다.
  • 두 번째 문자부터 알파벳, 언더스코어, 숫자가 올 수 있다.
  • 대소문자를 구분함. ex) sum, Sum은 다름
  • 키워드와 같은 이름으로 지을 수 없다.
// 좋은 예시
int playerScore;
string playerName;
float itemPrice;

// 나쁜 예시 (중요 의미 있는 변수명 짓기)
int x1;  // 변수명이 의미를 알기 어려움
string a; // 변수명이 명확하지 않음

// 오류 예시
int 1stNumber;  // 변수명은 숫자로 시작할 수 없음
string my-name; // 변수명에 하이픈(-)을 사용할 수 없음
float total$;   // 변수명에 특수문자($)를 사용할 수 없음

👏 코드 컨벤션(Code Convention)

  • 코드 컨벤션은 개발자들 사이에서 약속된 코드 작성 규칙!
    코드의 가독성을 높이고, 유지 보수를 용이하게 해준다.

🥸 식별자 표기법

  • PascalCase

    클래스, 메소드, 프로퍼티 이름 등에 사용. 단어의 첫 글자는 대문자로 시작하며, 이후 단어의 첫 글자도 대문자로 표기한다.
    ex) ClassName, MethodName

  • CamelCase

    변수, 매개변수, 로컬 변수 이름 등에 사용. 단어의 첫 글자는 소문자로 시작하며, 이후 단어의 첫 글자는 대문자로 표기.
    ex) variableName, parameterName

  • 대문자 약어

    예외적으로 전체 글자가 모두 대문자인 경우.
    ex) IP, HTTP, FTP

📚 코드 작성

📖 들여쓰기

  • 탭 또는 스페이스 4칸을 사용하여 코드 블럭을 들여쓴다.

📖 중괄호 위치

  • 중괄호({ })는 항상 새로운 줄에서 시작

📖 빈 줄 사용

  • 관련 없는 코드 사이는 빈 줄을 사용하여 구분
  • 메소드, 클래스 등 블럭 사이에는 두 줄을 띄운다.

📖 주석

  • 여러 줄 주석을 사용할 경우, 새로운 줄에서 끝내기.
class MyClass
{
    // 필드는 camelCase 표기법을 사용합니다.
    private int myField;

    // 프로퍼티는 PascalCase 표기법을 사용합니다.
    public int MyProperty { get; set; }

    // 메서드는 PascalCase 표기법을 사용합니다.
    public void MyMethod()
    {
        if (true)
        {
            // 중괄호는 새로운 줄에서 시작합니다.
        }

        // 코드 블록은 탭(tab) 또는 스페이스(space) 4칸으로 들여씁니다.

        // 관련 없는 코드 사이에는 빈 줄을 사용하여 구분합니다.
		// 블록 사이에는 두 줄을 띄어씁니다.
				
		/*
		여러 줄 주석을 사용할 때는
		/ * 를 새로운 줄에서 시작하고,
		* / 를 새로운 줄에서 끝내도록 합니다.
		*/
		
		// 한 줄 주석은 이렇게 사용합니다.
		int a = 10; // 코드 끝에도 한 줄 주석을 사용할 수 있습니다.
	}
}

MS의 C# 코딩 컨벤션
https://learn.microsoft.com/ko-kr/dotnet/csharp/fundamentals/coding-style/coding-conventions

😎 명시적 및 암시적 형변환

🤔 형변환?

자료형이 다른 변수 간에 값을 할당, 연산 수행할 때,

  • 명시적 형변환(Explicit Casting)
  • 암시적 형변환(Implicit Casting)

🫥 암시적 형변환

  • 작은 데이터 타입에서 더 큰 데이터 타입으로 대입하는 경우

    byte, short, char 등 작은 데이터 타이벵서 int, long, float 등 더 큰 데이터 타입으로 대입할 때.

    byte num1 = 10;
    int num2 = num1;
  • 리터럴 값이 대입되는 경우
    C# 컴파일러는 리터럴 값의 데이터 타입을 판별하여 변수에 암시적으로 형변환함.

    float result = 1; // 1은 int형 리터럴 값이지만 float형으로 암시적 형변환.

  • 정수형과 부동소수점형 간의 연산을 수행하는 경우

    int num1 = 10;
    float num2 = 3.14f;
    float result = num1 + num2;		// int형 + float형의 덧셈에서 float로 암시적 형변환

😶 명시적 형변환

명시적 형변환은 다음과 같이 (자료형) 형식으로 수행할 수 있다.

int num1 = 10;
long num2 = (long)num1;

0개의 댓글