1. const: 상수
* 변수 타입 앞에 선언. 고정된 값으로 이후 새로운 값으로 변경할 수 없음
const float pi = 3.141592f;
// 상수는 값 변경 X
// pi = 3.1411f; -> 오류
Console.WriteLine(pi);
2. enum: 열거형식
* 값을 따로 지정해주지 않으면 0부터 차례대로 값이 부여됨
enum eItemGrade
{
Normal, // 0
Magic, // 1
Legendary // 2
}
// 열거형식 eItemGrade 변수 정의 및 초기화
eItemGrade itemGradeType = eItemGrade.Magic;
Console.WriteLine(itemGradeType); // Magic
3. 형식 변환
3-1. 공통
* 변환하려는 변수 앞에 '(타입)' 입력
//// 열거형식 -> 정수
//Console.WriteLine((int)itemType); // 0
//// 정수 -> 열거형식
//eItemType myItemType = (eItemType)1;
//Console.WriteLine(myItemType); // Armor
3-2. ToString(): 문자열 변환
// 정수 -> 문자열
int hp = 100;
string strHp = hp.ToString();
Console.WriteLine(strHp);
// 실수 -> 문자열
float damage = 1.34f;
string strDamage = damage.ToString();
Console.WriteLine(strDamage);
//bool 타입 -> 문자열
bool isDie = false;
string strIsDie = isDie.ToString();
Console.WriteLine(strIsDie);
3-3. Convert.ToInt32(): 정수 변환
//문자열->정수
// 숫자에 지정된 문자열 ex) "10", "1100", "1.23"
int damage = Convert.ToInt32("100");
Console.WriteLine("damage: {0}", damage);
3-4. Convert.ToSingle(): 실수 변환
//문자열 -> 실수
float pi = Convert.ToSingle("3.14"); //3.14f ->오류
Console.WriteLine("pi = {0}", pi);
4. var: 암시적 형식
* 입력한 값의 타입으로 지정됨
var name = "홍길동"; // string
var level = 12; // int
5. 값 형식/참조 형식
- 값 형식은 스택에 값이 직접적으로 저장됨
- 종류: int, float, char, bool, enum
- 참조 형식은 힙에 값이 저장되어 스택에서 참조
* 값을 지정해주지 않고 변수 정의만 할 시 기본값은 'null'
- 종류: object, string
// 참조 형식 변수 정의 -> 스택에 변수 주소 저장
string name = null;
Console.WriteLine("name: {0}", name); // null: 출력은 되나 아무것도 없음
// 값 할당 -> 힙에 저장
name = "홍길동";
Console.WriteLine("name: {0}", name);
6. if-else 조건문
- if문에 입력한 bool식이 true일 경우 해당 본문 실행
- else if(): 처음 사용한 if문 외의 다른 조건식을 사용할 때 이용
- else: 조건식이 false일 경우 해당 본문 실행
enum eRace
{
Terran = 1,
Zerg = 2,
Protoss= 3
}
// 비교한 값에 따라 선택한 종족 출력
eRace select;
Console.WriteLine("종족을 선택해주세요. (1.Terran, 2.Zerg, 3. Protoss): ");
string inputNum = Console.ReadLine();
select = (eRace)Convert.ToInt32(inputNum);
if (eRace.Terran == select)
{
Console.WriteLine("테란을 선택했습니다.");
}
else if (eRace.Zerg == select)
{
Console.WriteLine("저그를 선택했습니다.");
}
else if (eRace.Protoss == select)
{
Console.WriteLine("프로토스를 선택했습니다.");
}
else
{
Console.WriteLine("잘못 선택했습니다.");
}
7. 논리 연산자
- &&: AND 연산, 모든 조건이 참일 경우 true
- ||: OR 연산, 모든 조건 중 하나라도 참일 경우 true
- !: NOT 연산, 두 값이 같지 않을 경우 true
string mat1 = "장검";
string mat2 = "장검";
string newItem = null;
int gold = 1000; // 소지 골드
int requireGold = 10; // 합성에 필요한 골드
if ((mat1 != null && mat2 != null) && gold >= requireGold)
{
mat1 = null;
mat2 = null;
newItem = "강인한 장검";
gold -= requireGold;
Console.WriteLine("합성 성공");
Console.WriteLine("{0}이 만들어졌습니다.", newItem);
Console.WriteLine("남은 골드: {0}", gold);
}
8. for문
- for문에 지정된 bool 식이 true일 경우 본문 반복 실행
// for문 기본형
for (int i = 0; i < 5; i++)
{
Console.Write(i);
}
// int i = 0: initializer section - 변수 선언&초기화
// i < 5: Condition section - 반복 실행 구간
// i++: iterator section - 본문 실행 후 수행
9. 응용 실습
Console.Write("첫번째 수를 입력해주세요: ");
string input1 = Console.ReadLine();
Console.Write("두번째 수를 입력해주세요: ");
string input2 = Console.ReadLine();
Console.WriteLine("당신이 입력한 두 수는 다음과 같습니다.");
Console.WriteLine("첫 번째 수: {0}", input1);
Console.WriteLine("두 번째 수: {0}", input2);
// 입력 받은 두 수 더하기
Console.WriteLine("두 수의 합을 입력하세요: ");
string input3 = Console.ReadLine();
// 형변환
int num1 = Convert.ToInt32(input1);
int num2 = Convert.ToInt32(input2);
int sum = num1 + num2;
int num3 = Convert.ToInt32(input3);
if (sum == num3)
{
Console.WriteLine("정답입니다.");
}
else
{
Console.WriteLine("틀렸습니다. 정답은 {0}입니다.", sum);
}
for (int i = 0; i < 5; i++)
{
if (i % 2 == 0)
{
Console.WriteLine("{0}는 홀수입니다.", i + 1);
}
if (i % 2 == 1)
{
Console.WriteLine("{0}는 짝수입니다.", i + 1);
}
}
Console.Write("원하는 단수를 입력하세요: ");
string input = Console.ReadLine();
int number = Convert.ToInt32(input);
for (int i = 0; i < 9; i++)
{
Console.WriteLine("{0} x {1} = {2}", number, i + 1, (i + 1) * number);
}
Console.Write("줄넘기를 몇 회 하시겠습니까? (1~9): ");
int input = Convert.ToInt32(Console.ReadLine());
int cnt = Convert.ToInt32(input);
if (cnt < 1 || cnt > 9)
{
Console.WriteLine("범위를 벗어났습니다.");
}
else
{
for (int i = 0; i < cnt; i++)
{
Console.WriteLine("줄넘기를 {0}회 했습니다.", i + 1);
}
Console.WriteLine("------------------------------------");
Console.WriteLine("줄넘기를 총 {0}개 했습니다. ", cnt);
}
'C# > 수업 내용' 카테고리의 다른 글
2048 왼쪽 이동 (0) | 2022.06.15 |
---|---|
인벤토리 예제 (0) | 2022.06.14 |
22.06.14 - property, get-set메서드, interface (0) | 2022.06.14 |
22.06.09 - 여러 타입의 변수 정의 및 초기화, 출력 실습 (0) | 2022.06.10 |
늑대 잡기 (0) | 2022.06.10 |