기초 문법 총정리1 (입력과 출력, 반복문, 조건문, 배열, 클래스, 상속, 인터페이스, 가상 메서드)

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();