내일배움캠프 TIL

내일배움캠프 7일차 TIL "C# 출력과 입력"

Jooglorystar 2024. 9. 20. 23:37

 

C# 프로젝트를 열면 처음 볼 수 있는 코드는 Hello, World! 를 출력하는 코드이다.

 

internal class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello, World!");
    }
}

 

 

이를 실행할 경우, 콘솔창에 Hello, World! 를 출력할 수 있다.

 

눈치가 빠른 사람이라면 Console.WriteLine()을 이용하면 콘솔창에 메세지를 띄울 수 있음을 쉽게 유추해낼 수 있다.

 

Console.WriteLine(); 이라고만 적을 경우, 아무런 메세지 없이 한칸을 띌 수 있다.

internal class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello, World!");
        Console.WriteLine();
        Console.WriteLine("Hello, World! 2");
    }
}

 

Console.WriteLine("Hello, World! 2"); 와 같이, 큰 따옴포 내에 있는 문자열을 바꿀 경우, 그 문자열을 그대로 출력할 수도 있다.

 

-변수를 이용한 출력

큰 따옴표를 이용하여 문자열을 직접 출력하는 것도 되지만, 문자열을 변수에 담아 출력할 수도 있다.

 

internal class Program
{
    static void Main(string[] args)
    {
        string str = "Hello, World!";

        Console.WriteLine(str);
    }
}

 

결과는 Console.WriteLine("Hello, World!"); 라고 적었을 때와 같다.

 

문자열 뿐만 아니라, 정수, 실수, bool 값 또한 출력이 가능하다

 

internal class Program
{
    static void Main(string[] args)
    {
        string str = "Hello, World!";
        int num = 20;
        float pi = 3.14f;
        bool isTrue = true;

        Console.WriteLine(str);
        Console.WriteLine(num);
        Console.WriteLine(pi);
        Console.WriteLine(isTrue);
    }
}

 

 

 

-Console.Write()

 

Console.WriteLine() 외에도 Console.Write() 가 존재한다.

이 둘의 차이점은 Console.WriteLine은 값을 출력하고 줄바꿈 까지 출력하지만, Write는 줄바꿈 되지 않고 이어서 출력된다.

internal class Program
{
    static void Main(string[] args)
    {
        string str = "Hello, World!";
        int num = 20;
        float pi = 3.14f;
        bool isTrue = true;

        Console.Write(str);
        Console.Write(num);
        Console.Write(pi);
        Console.Write(isTrue);
    }
}

 

 

출력한 모든 값이 모두 붙어 있는 것을 볼 수 있다.

 

 

-문자열 사이에 변수 값 삽입

 

위의 예시들 처럼 값 하나를 출력하는 경우도 있겠지만, 어떤 문자열에 일부 변수를 삽입하고 싶은 경우가 있을 수 있다.

internal class Program
{
    static void Main(string[] args)
    {
        string name = "홍길동";
        int age = 25;

        Console.WriteLine("제 이름은 " + name + "입니다. 나이는 " + age + "살 입니다.");
        Console.WriteLine("제 이름은 {0}입니다. 나이는 {1}살 입니다.", name, age);
        Console.WriteLine($"제 이름은 {name}입니다. 나이는 {age}살 입니다.");
    }
}

 

위 세 Console.WriteLine은 '제 이름은 홍길동입니다. 나이는 25살 입니다.'이라는 같은 문장을 출력한다.

 

첫번째 방식은 +를 이용하여 문자열 사이에 변수를 삽입한 방식,

두번째 방식은 포매팅을 이용한 방식,

세번째 방식은 문자열 보간을 이용한 방식이다.

 

첫번째 방식에 비해, 두번째, 세번째 방식이 문자열의 어느 부분에 변수가 삽입되는지 직관적으로 더 잘 보인다.

 

 

-입력

 

출력시에는 Console.WriteLine()을 사용하고, 반대로 콘솔창에 어떠한 값을 입력하기 위해서는

Console.ReadLine()을 사용한다.

 

internal class Program
{
    static void Main(string[] args)
    {
        string input = Console.ReadLine();

        Console.WriteLine($"입력한 것은 {input}입니다.");
    }
}

 

'입력 코드 실행' 이라고 입력 했을 경우

 

이때 ReadLine으로 입력된 값은 문자열로 입력이 된다.

 

만약 ReadLine으로 숫자를 입력 받아 계산기를 만들고 싶다면 입력된 값을 정수나 실수로 변환해 주는 작업이 필요하다.

 

internal class Program
{
    static void Main(string[] args)
    {
        int num1 = int.Parse(Console.ReadLine());
        int num2 = int.Parse(Console.ReadLine());

        int result = num1 + num2;
        Console.WriteLine($"{num1} + {num2} = {result}");
    }
}

 

int.Parse를 이용해 정수로 변환이 가능하며,

float.Parse를 이용해 실수로 변환이 가능하다.

 

반대로 이러한 숫자를 문자열로 변환하는 것도 가능하다.

 

internal class Program
{
    static void Main(string[] args)
    {
        int num1 = int.Parse(Console.ReadLine());
        int num2 = int.Parse(Console.ReadLine());

        int result = num1 + num2;
        
        string str = result.ToString();

        Console.WriteLine($"{num1} + {num2} = {result}");
    }
}

 

 

위 코드에서 string str = result.ToString();를 통해, 정수 result의 값 10을 "10" 이라는 문자열로 str에 저장했다.