이번 시간에는 C#의 기초에 대해서 배워보도록 하겠습니다. 이 순서대로 알려드리도록 하겠습니다.
- C# 기본 구조: Main 메서드, 기본 입출력 (콘솔 입출력)
- 자료형 및 변수: 기본 자료형, 변수 선언, 상수
- 연산자: 산술, 비교, 논리 연산자
- 조건문: if, else if, switch
- 반복문: for, while, do-while, foreach
- 배열 및 리스트: 1차원 배열, 다차원 배열, List
, Dictionary<K,V> - 메서드: 메서드 정의와 호출, 매개변수, 반환값
- 예외 처리: try, catch, finally, 예외 던지기 (throw)
1. C# 기본 구조: Main 메서드, 기본 입출력 (콘솔 입출력)
C# 프로그램은 기본적으로 Main 메서드에서 실행이 시작됩니다. Main 메서드는 프로그램의 진입점(entry point)이며, 모든 프로그램은 이 메서드를 가지고 있어야 합니다. C#에서 기본 입출력은 Console 클래스를 사용하여 처리할 수 있습니다. 이 클래스는 입력을 받을 때는 Console.ReadLine()을, 출력을 할 때는 Console.WriteLine()을 사용합니다.
NOTE매소드란 쉽게 말해 특정 작업을 수행하는 코드 블록으로, 호출될 때 실행되는 함수라고 보면됩니다.
예시:
using System;
class Program
{
// 프로그램의 진입점 (entry point)
static void Main(string[] args)
{
// 기본 출력
Console.WriteLine("Hello, World!");
// 입력 받기
Console.Write("이름을 입력하세요: ");
string name = Console.ReadLine();
// 입력 받은 값을 출력
Console.WriteLine("안녕하세요, " + name + "님!");
}
}
이 프로그램은 콘솔에 “Hello, World!”를 출력하고, 사용자의 이름을 입력받은 후 “안녕하세요, [이름]님!”을 출력하는 코드입니다.
2. 자료형 및 변수: 기본 자료형, 변수 선언, 상수
C#에서는 여러 종류의 자료형이 있습니다. 자료형은 데이터를 저장할 수 있는 형식을 나타냅니다. 변수는 데이터를 저장하는 공간이며, 특정 자료형으로 선언됩니다. 또한, 상수는 변하지 않는 값을 저장하는 데 사용됩니다.
- 기본 자료형:
int,double,char,bool,string등 - 변수 선언:
자료형 변수이름 = 값; - 상수:
const키워드를 사용하여 선언, 이후 값 변경 불가능
예시:
using System;
class Program
{
static void Main(string[] args)
{
// 변수 선언 및 초기화
int age = 25;
double height = 1.75;
char grade = 'A';
bool isStudent = true;
string name = "Alice";
// 상수 선언
const double PI = 3.14159;
// 출력
Console.WriteLine("이름: " + name);
Console.WriteLine("나이: " + age);
Console.WriteLine("키: " + height);
Console.WriteLine("학점: " + grade);
Console.WriteLine("학생 여부: " + isStudent);
Console.WriteLine("원주율: " + PI);
}
}
3. 연산자: 산술, 비교, 논리 연산자
연산자는 값을 처리하고 계산하는 데 사용됩니다. C#은 다양한 종류의 연산자를 지원합니다.
- 산술 연산자:
+,-,*,/,%(덧셈, 뺄셈, 곱셈, 나눗셈, 나머지) - 비교 연산자:
==,!=,<,>,<=,>= - 논리 연산자:
&&,||,!(AND, OR, NOT)
예시:
using System;
class Program
{
static void Main(string[] args)
{
int a = 10;
int b = 20;
// 산술 연산자
int sum = a + b;
int difference = a - b;
// 비교 연산자
bool isEqual = a == b;
bool isLessThan = a < b;
// 논리 연산자
bool isTrue = (a < b) && (b > 15);
// 출력
Console.WriteLine("합계: " + sum);
Console.WriteLine("차이: " + difference);
Console.WriteLine("a와 b는 같은가? " + isEqual);
Console.WriteLine("a는 b보다 작은가? " + isLessThan);
Console.WriteLine("a < b AND b > 15: " + isTrue);
}
}
4. 조건문: if, else if, switch
조건문은 프로그램에서 특정 조건에 따라 다른 코드가 실행되도록 제어합니다.
- if: 주어진 조건이 true일 때만 실행
- else if: 여러 조건을 평가할 때 사용
- else: 위의 조건들이 모두 false일 때 실행
- switch: 하나의 변수 값을 여러 경우와 비교할 때 사용
예시:
using System;
class Program
{
static void Main(string[] args)
{
int score = 85;
// if-else 조건문
if (score >= 90)
{
Console.WriteLine("A 학점");
}
else if (score >= 80)
{
Console.WriteLine("B 학점");
}
else
{
Console.WriteLine("C 학점");
}
// switch문
int dayOfWeek = 3;
switch (dayOfWeek)
{
case 1:
Console.WriteLine("월요일");
break;
case 2:
Console.WriteLine("화요일");
break;
case 3:
Console.WriteLine("수요일");
break;
default:
Console.WriteLine("기타");
break;
}
}
}
5. 반복문: for, while, do-while, foreach
반복문은 특정 코드 블록을 여러 번 실행하는 데 사용됩니다.
- for: 반복 횟수가 정해졌을 때 사용
- while: 조건이 true인 동안 반복
- do-while: 코드가 최소 한 번 실행된 후 조건을 평가
- foreach: 배열이나 컬렉션의 요소를 순회할 때 사용
예시:
using System;
class Program
{
static void Main(string[] args)
{
// for 반복문
for (int i = 1; i <= 5; i++)
{
Console.WriteLine("for: " + i);
}
// while 반복문
int j = 1;
while (j <= 5)
{
Console.WriteLine("while: " + j);
j++;
}
// do-while 반복문
int k = 1;
do
{
Console.WriteLine("do-while: " + k);
k++;
}
while (k <= 5);
// foreach 반복문
string[] fruits = { "사과", "바나나", "포도" };
foreach (string fruit in fruits)
{
Console.WriteLine("foreach: " + fruit);
}
}
}
6. 배열 및 리스트: 1차원 배열, 다차원 배열, List, Dictionary<K,V>
배열과 리스트는 데이터를 순차적으로 저장할 수 있는 자료구조입니다.
- 1차원 배열: 단일 차원의 배열
- 다차원 배열: 여러 차원의 배열
- List
: 동적 배열처럼 크기가 가변적인 자료구조 - Dictionary<K,V>: 키와 값을 쌍으로 저장하는 자료구조
예시:
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
// 1차원 배열
int[] numbers = { 1, 2, 3, 4, 5 };
// 다차원 배열
int[,] matrix = { { 1, 2 }, { 3, 4 } };
// List<T>
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
// Dictionary<K,V>
Dictionary<string, int> ages = new Dictionary<string, int>
{
{ "Alice", 25 },
{ "Bob", 30 }
};
// 출력
Console.WriteLine("배열 첫 번째 값: " + numbers[0]);
Console.WriteLine("행렬 값: " + matrix[0, 1]);
Console.WriteLine("첫 번째 이름: " + names[0]);
Console.WriteLine("Alice의 나이: " + ages["Alice"]);
}
}
7. 메서드: 메서드 정의와 호출, 매개변수, 반환값
메서드는 특정 작업을 수행하는 코드 블록입니다. 매개변수를 받을 수 있으며, 결과값을 반환할 수 있습니다.
예시:
using System;
class Program
{
// 메서드 정의
static int Add(int a, int b)
{
return a + b;
}
static void Main(string[] args)
{
// 메서드 호출
int result = Add(3, 4);
// 출력
Console.WriteLine("합계: " + result);
}
}
8. 예외 처리: try, catch, finally, 예외 던지기 (throw)
예외 처리는 프로그램
실행 중 발생할 수 있는 오류를 처리하는 방법입니다.
- try: 예외가 발생할 가능성이 있는 코드를 감싸는 블록
- catch: 예외가 발생했을 때 실행되는 블록
- finally: 예외 발생 여부와 상관없이 실행되는 블록
- throw: 명시적으로 예외를 던짐
예시:
using System;
class Program
{
static void Main(string[] args)
{
try
{
// 예외 발생 가능성 있는 코드
int number = int.Parse("ABC");
}
catch (FormatException ex)
{
// 예외 처리
Console.WriteLine("형식 오류 발생: " + ex.Message);
}
finally
{
// 항상 실행되는 코드
Console.WriteLine("프로그램 종료");
}
}
}
이 코드는 숫자로 변환할 수 없는 문자열을 파싱하려고 시도할 때 FormatException이 발생하여 이를 처리하는 방식입니다.

