게임 개발_HISTORY
C# STUDY_TIL250928 [변수와 자료형, 연산자와 문자열] 본문
📝 학습 요약
- 변수와 자료형의 정의와 활용
- 연산자와 문자열의 의미와 처리 방법
🧩 학습 내용 구조
✔️ 변수 선언과 초기화 방법
변수는 숫자나 문자 등의 데이터를 저장하고 사용하기 위해 할당받는 공간이다.
자료형을 선택 하고 이에 알맞는 변수의 정보를 입력하는 것을 '선언'이라고 한다.
이 변수에 값을 넣어 주는 것이 '할당'이며 처음에 데이터를 할당 하는 것을 '초기화' 라고 한다.
- 여기서 변수의 초기화(Initialization)는 일상적인 의미의 되돌린다는 의미가 아니라 초기의 값을 넣어 준다는 의미이다.
int number; // 변수 선언
number = 10; // 변수 초기화
int number = 10; // 변수 선언과 초기화를 한 번에 수행
int num1, num2, num3 = 10; //(X)
num1 = num2 = num3 = 10; //(O), 이렇게 ㅇ여러개의 변수를 초기화 할 수도 있다.
✔️ 변수명을 선언하는 방법
- Keywords는 프로그래밍 언어에서 이미 특별한 의미로 약속된 단어들이다. 따라서 이러한 언어는 변수명으로 사용할 수 없다.
e.g ) int, class, if, while, for, return … - 식별자(Identifiers)는 변수, 함수, 클래스 등을 구분하는 이름이며 프로그래머가 직접 지어주는 이름이다. 식별자를 지정할 때
제한하는 규칙이 있는데
1. 첫 글자는 숫자로 시작할 수 없다.
2. 띄어쓰기를 포함할 수 없다.
3. 특수문자 사용이 불가하다. ( '_' (언더스코어)는 허용됨)
4. 대소문자를 구분하가 때문에 num, Num, NUM 은 모두 다른 식별자 이다. - Code convention은 개발자들 사이에서 약속된 코드 작성 규칙이다. 코드의 가독성을 높이고 유지 보수를 쉽게 하기 위해 사용한다. 프로그래밍 언어마다 다를 수 있으며, C#의 규칙은 아래와 같다.
▫️식별자 표기법
PascalCase : 클래서, 메서드, 프로퍼티 등의 단어 첫 글자는 대문자로 시작해야 한다.
CamelCase : 변수, 매개변수, 로컬변수 등은 단어의 첫 글자는 소문자로 시작해야 한다.
예외적으로 모두가 대문자인 식별자도 있다.
- 코드를 작성할 때 tab 또는 Space bar 4칸을 사용하여 코드 블럭을 들여쓴다.
중괄호({})는 항상 새로운 줄에서 시작한다.
빈줄을 활용해서 관련 없는 코드 사이에는 빈 줄을 사용하여 구분한다.
주석은 보통 한줄 주석을 사용하고 해당 라인의 코드 설명을 입력한다.
✔️ 명시적 및 암시적 형변환이란?
말 그대로 형태를 변환하는 것이며 값의 타입을 다른 타입으로 변환 하는 것이다.
(C#에서 오직 boolean 만 결과 값이 true or false 두가지만 존재하므로 형변환이 불가하다.)
자료형이 다른 변수 간에 값을 할당하거나 연산을 수행하려면 명시적 형변환 또는 암시적 형변환을 해주어야 한다.
▫️명시적 형변환(Explicit casting)
int num1 = 10;
long num2 = (long)num1; // int를 long으로 명시적 형변환
- 개발자가 직접 변환 코드를 작성해야 하고 캐스트 연산자를 사용한다.
- 보통 큰 크기의 자료형을 더 작은 크기의 자료형으로 변환하거나,
정수형과 실수형 같이 자료형의 형태가 근본적으로 다를 때 발생한다. - 큰 그릇의 내용을 작은 그릇에 억지로 옮겨 담을 때, 일부 내용이 넘치ㅏ거나 잘릴 수 있음을 개발자가 명시적으로 컴파일러에게 알리는 행위이다. (e.g : double → int)
▫️암시적 형변환(implicit casting)
byte num1 = 10;
int num2 = num1; // byte형에서 int형으로 암시적 형변환
- 컴파일러가 자동으로 변환을 처리하고 개발자가 변환 코드를 따로 작성할 필요가 없다.
- 항상 작은 크기의 자료형을 더 큰 크기의 자료형으로 변환할 때 발생한다.
- 큰 그릇에 작은 그릇의 내용을 옮겨 담는 것과 같아서, 데이터 손실의 위험이 전혀 없다. (e.g int → double)
- 리터럴(Literal) 값이 대입되는 경우 암시적으로 형변환이 되는데, 여기서 리터럴(Literal)은 코드 내에서 고정된 값 그 자체를 의미한다. (e.g : 1, 100, 3.14, "Hello", true 등) C#에서는 아무 접미사 없이 사용된 정수 리터럴 '1'은 기본적으로 int 타입으로 간주된다. C# 컴파일러는 int가 float보다 표현 범위가 좁고 (정수형에서 실수형으로의 변환은 표현범위가 확장됨) int의 값을 float로 변환해도 데이터 손실이 일어나지 않음을 알고 있다. (정수 1이 실수 1.0으로 변환될 뿐이다.) 따라서 개발자가
text{(float)1} 이라고 명시하지 않아도 안전하다고 판단하여 자동으로 float타입 1.0으로 변수에 대입한다. - 정수형과 부동소수점형 간의 연산을 수행하는 경우, 결과로 부동수소점형으로 변환된다.
int num1 = 10;
float num2 = 3.14f;
float result = num1 + num2; // int형과 float형의 덧셈에서 float형으로 암시적 형변환
암시적 형변환은 프로그래머가 직접 형 변환 코드를 작성하지 않아도 되므로 코드를 간결하게 작성할 수 있다. 하지만 데이터 타입을 신중히 고려하며 작업해야 한다.
✔️ Console.ReadLine
Con sole.Write("What is your favorite fruit?: ");
string name = Console.ReadLine();
Console.WriteLine($"My favorite fruit is {name}!");
What is your favorite fruit? : orange
My favorite fruit is orange!
출력은 위와 같이 나온다.
Console.Write("Enter two numbers: ");
string input = Console.ReadLine(); // "10 20"과 같은 문자열을 입력받음
string[] numbers = input.Split(' '); // 문자열을 공백으로 구분하여 배열로 만듦
int num1 = int.Parse(numbers[0]); // 첫 번째 값을 정수로 변환하여 저장
int num2 = int.Parse(numbers[1]); // 두 번째 값을 정수로 변환하여 저장
int sum = num1 + num2; // 두 수를 더하여 결과를 계산
Enter two number: 10 30
The sum of 10 and 30 is 40
출력은 위와 같이 나온다.
✔️ var 키워드 사용법
- C# 3.0 부터 va 키워드를 사용할 수 있다. var 키워드는 변수를 선언하면 값의 자료형에 따라 변수의 자료형을 자동으로 결정해준다. 변수의 자료형을 정확히 알 수 없는 경우 유용하게 사용할 수 있다. 하지만 학습을 하는 동안은 지양하는 것이 좋다.
var num = 10; // int 자료형으로 결정됨
var name = "kero"; // string 자료형으로 결정됨
var pi = 3.141592; // double 자료형으로 결정됨
▫️드래그 한 코드를 주석 처리 하려면 ctrl + K, C 반대로 주석을 해제하려면 Ctrl + K, U 를 입력한다.
▫️변수의 이름을 명확하게 지어주는 것이 코드 가동성을 높이는데 큰 도움이 된다. 그러므로 너무 짧지도 길지도 않게 작성한다.
💡번외로 Code, Cord, Chord 모두 코드라고 말하는데 모두 어원이 전혀 상관 없는 단어들이다. Code는 발음이 나머지 두개와 다르고 Cord와 Chord는 발음이 같다. 먼저 Code는 세가지의 의미를 담고 있는데, 첫번째로 '암호/부호' 의미를 가진다. Password 보다 더 복잡한 개념의 해석/풀이의 대상이다. 두번째로 프로그래밍에서의 '암호/부호' 의 의미이다. 세번째의 의미는 '사회적 관례(규칙)' 이다. 예시로 'Dress code'가 있다. Cord는 Plug의 끈 부분을 뜻한다. 그리고 String 보다 두껍고 Rope 보다는 얇은 굵기의 끈의 의미를 가지기도 한다. 마지막으로 Chord는 악기 연주에서 '화음'을 뜻한다. 또한 수학에서 원 또는 곡선의 호의 두 끝을 잇는
선분 을 가리킨다.
🚀 내일 할 일 (To-do)
- C# 문법 종합반 강의 수강_챕터 2까지 완료 목표
'Development In Unity > Study : C#' 카테고리의 다른 글
| C# STUDY_TIL251007 [클래스와 객체] (0) | 2025.10.07 |
|---|---|
| C# STUDY_TIL251006 [숫자 맞추기 게임, 틱텍토 게임 구현] (0) | 2025.10.06 |
| C# STUDY_TIL251005 [메서드] (0) | 2025.10.05 |
| C# STUDY_TIL251004 [배열과 컬렉션] (0) | 2025.10.04 |
| C# STUDY_TIL250927 [C# 언어의 특징] (0) | 2025.09.27 |
