2024. 8. 30. 15:42ㆍ카테고리 없음
개요
기초 문법 총정리1
내용 - 입력과 출력 (Input and Output)
설명
입력과 출력은 프로그램에서 사용자와 상호작용하는 중요한 부분입니다. C#에서는 Console 클래스를 사용하여 입력을 받고 출력을 할 수 있습니다.
1. 입력 받기
Console.ReadLine 메서드를 사용하여 사용자의 입력을 문자열로 받을 수 있습니다.
코드
Console.WriteLine("Enter your name:");
string name = Console.ReadLine();
Console.WriteLine($"Hello, {name}!");
여기서 Console.Read(); 만 작성할 시 아스키코드로 값을 받으니 주의할 것 그럼 받는 타입이 string 이 아닌 int 이다.
1-2. 문자형으로 입력받기
char inputWor = Console.ReadLine()[0];
입력받은 문자의 첫번째 값을 inputWor에 저장한다.
2. 출력하기
Console.WriteLine 메서드를 사용하여 콘솔에 메시지를 출력할 수 있습니다.
코드
Console.WriteLine("Hello, World!");
3. 숫자 입력 받기
입력받은 문자열을 숫자로 변환하려면 int.Parse 또는 Convert.ToInt32 메서드를 사용할 수 있습니다.
코드
Console.WriteLine("Enter a number:");
int number = int.Parse(Console.ReadLine());
Console.WriteLine($"You entered: {number}");
내용 - 반복문 (Loops)
설명
반복문은 특정 코드 블록을 여러 번 실행할 때 사용됩니다. C#에서 자주 사용되는 반복문은 for, while, do-while 문이 있습니다.
1. for 문
반복 횟수가 정해져 있을 때 주로 사용합니다.
코드
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}
for문 안에 continue는 다음으로 넘어간다는 뜻(i 가 1이면 2로 넘어간다는 뜻), break는 멈춘다는 뜻이다.
2. while 문
조건이 참인 동안 반복합니다.
코드
int j = 0;
while (j < 10)
{
Console.WriteLine(j);
j++;
}
3. do-while 문
조건을 나중에 평가하므로 코드 블록이 최소 한 번 실행됩니다.
코드
int k = 0;
do
{
Console.WriteLine(k);
k++;
} while (k < 10);
조건문 (Conditional Statements)
설명
조건문은 특정 조건에 따라 코드 블록을 실행할 때 사용됩니다. 자주 사용되는 조건문은 if, else if, else 문이 있습니다.
if, else if, else 문
조건이 참인 경우에만 실행(if), 이전 조건이 거짓이고 새로운 조건이 참인 경우에 실행(else if), 모든 조건이 거짓인 경우에 실행됩니다.(else)
코드
int number = 0;
if (number > 0)
{
Console.WriteLine("Positive number");
}
else if (number < 0)
{
Console.WriteLine("Negative number");
}
else
{
Console.WriteLine("Zero");
}
배열 (Arrays)
설명
배열은 같은 데이터 타입의 여러 값을 저장할 수 있는 자료구조입니다.
1. 배열 선언과 초기화
배열을 선언하고 초기화하는 방법은 다음과 같습니다.
코드
int[] numbers = new int[5]; // 크기가 5인 정수 배열 선언
numbers[0] = 10; // 첫 번째 요소에 값 10 저장
numbers[1] = 20; // 두 번째 요소에 값 20 저장
// 배열 선언과 동시에 초기화
int[] numbers = { 10, 20, 30, 40, 50 };
2. 배열 접근과 순회
배열의 모든 요소를 순회하는 방법입니다.
코드
int[] numbers = { 10, 20, 30, 40, 50 };
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine(numbers[i]);
}
클래스 (Classes)
설명
클래스는 객체를 정의하는 데 사용되는 청사진입니다. 속성과 메서드를 포함할 수 있습니다.
클래스 정의와 사용
클래스 정의와 객체 생성 방법입니다.
코드
class Person
{
public string Name;
public int Age;
public void Introduce()
{
Console.WriteLine($"Hello, my name is {Name} and I am {Age} years old.");
}
}
// 클래스 사용 예제
Person person = new Person();
person.Name = "John";
person.Age = 30;
person.Introduce();
상속 (Inheritance)
설명
상속은 한 클래스가 다른 클래스의 특성과 메서드를 물려받는 것을 의미합니다. C#은 다중 상속을 지원하지 않습니다. 하나의 클래스만 상속받을 수 있습니다.
상속 예제
상속을 통해 부모 클래스의 메서드를 자식 클래스에서 사용할 수 있습니다.
코드
class Animal
{
public void Eat()
{
Console.WriteLine("Eating...");
}
}
class Dog : Animal
{
public void Bark()
{
Console.WriteLine("Barking...");
}
}
// 상속 사용 예제
Dog dog = new Dog();
dog.Eat();
dog.Bark();
인터페이스 (Interfaces)
설명
인터페이스는 클래스나 구조체가 구현해야 하는 메서드와 속성의 정의를 포함합니다. C#에서는 인터페이스를 다중 상속할 수 있습니다.
인터페이스 정의와 구현
인터페이스를 정의하고 구현하는 방법입니다.
코드
interface IAnimal
{
void MakeSound();
}
class Dog : IAnimal
{
public void MakeSound()
{
Console.WriteLine("Bark");
}
}
// 인터페이스 사용 예제
IAnimal animal = new Dog();
animal.MakeSound();
추상 클래스 (Abstract Classes)
설명
추상 클래스는 인스턴스화될 수 없으며, 상속을 통해서만 사용될 수 있습니다. 추상 메서드를 포함할 수 있습니다.
추상 클래스 정의와 구현
추상 클래스와 이를 상속받아 구현하는 방법입니다.
코드
abstract class Animal
{
public abstract void MakeSound();
}
class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("Bark");
}
}
// 추상 클래스 사용 예제
Animal animal = new Dog();
animal.MakeSound();
인터페이스 추상 클래스 차이점
인터페이스:
특정 기능이나 동작을 구현하도록 강제하고 싶을 때 사용합니다. 구현에 독립적인 계약을 정의합니다.
예시: 여러 종류의 동물이 소리를 내는 기능을 공유하게 하고 싶다면, IAnimal 인터페이스를 사용하여 모든 동물이 MakeSound 메서드를 구현하도록 강제합니다.
추상 클래스:
공통적인 기능을 여러 클래스에서 공유하면서도, 특정 기능은 각 클래스에서 구체적으로 구현하도록 하고 싶을 때 사용합니다.
예시: 모든 동물이 걷는 방법이 같고, 소리르 내는 방법만 다르다면, Animal 추상 클래스에서 Walk 메서드를 구현하고, MakeSound는 각 동물 클래스에서 구현하도록 할 수 있습니다.
가상 메서드 (Virtual Methods)
설명
가상 메서드는 자식 클래스에서 재정의할 수 있는 부모 클래스의 메서드입니다.
가상 메서드 정의와 재정의
가상 메서드를 정의하고 이를 재정의하는 방법입니다.
가상 메서드: 부모 클래스에서 virtual로 선언된 메서드는 자식 클래스에서 override를 통해 재정의할 수 있습니다.
다형성: 객체의 실제 타입(여기서는 Dog)에 따라 메서드 호출이 다르게 처리됩니다. 이로 인해 Animal 타입의 변수로도 Dog 클래스의 메서드가 호출될 수 있습니다.
코드
class Animal
{
public virtual void MakeSound()
{
Console.WriteLine("Animal sound");
}
}
class Dog : Animal
{
public override void MakeSound()
{
Console.WriteLine("Bark");
}
}
// 가상 메서드 사용 예제
Animal animal = new Dog();
animal.MakeSound();