본문 바로가기

C#/C# 기초 강의

C# 프로그래밍 강좌 3 - WriteLine, Write으로 출력하기

728x90
728x90

이 게시글에서는 WriteLine과 Write 메소드에 대해 공부한다.

 

이전 게시글에 연계하여 이 둘은 콘솔 창에 출력해주는 코드 덩어리로 이해할 수 있다.

 

어떻게 문자가 출력되는지는 운영체제를 공부해야 그 메커니즘을 설명할 수 있지만, "아 WriteLine과 Write 메소드는 해주는구나!"로 간단히 이해해도 문제가 없다.

PascalCase

이전에 생성했던 프로젝트는 삭제하고 프로젝트를 다시 생성해보자.

 

사실 C# 네임스페이스와 클래스의 이름은 PascalCase를 따라야 한다. PascalCase는 단어의 첫글자를 대문자로 하는 프로그래밍 명명 규칙이다.

 

물론 네임스페이스의 이름만 바꿔도 아무 문제가 없다. 프로젝트를 다시 생성하거나 네임스페이스의 이름을 바꿔 PascalCase를 준수하도록 바꿔보자.

 

using System;

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

네임스페이스의 이름을 Learning으로 바꿔 PascalCase를 따르게 했다.

 

이제 C# 콘솔에서 출력을 담당하는 WriteLine과 Write에 대해 알아보자.

WriteLine

이전 글들을 통해 프로그램을 실행해봤다면 콘솔 창에 나오는 Hello World!라는 출력문을 봤을 것이다.

 

본인이 원하는 문장으로 바꿔보자.

Console.WriteLine("Good day everyone!");

참고로 문자를 출력할 때는 큰따옴표로 감싸줘야만 한다. 그렇지 않으면 에러가 발생하는데 그 이유는 다음에 변수와 자료형을 공부하면서 알 수 있다.

 

자기가 원하는 문장으로 바꿔준 후 저장(ctrl + S)하고 실행해보자.

 

 

바꾼대로 출력되는 것을 볼 수 있다.

 

그렇다면 여러 문장을 출력시키려면 어떻게 할까? 간단하다 WriteLine을 여러 번 호출하면 된다.

Console.WriteLine("Good day everyone!");
Console.WriteLine("Hello World!");

 

이제 여러분은 프로그래밍으로 원하는 문장을 출력할 수 있다!

 

그런데 의문이 있다. 자동으로 줄 바꿈을 하는 것이 아닌가? 여러 문장을 출력하면서도 줄 바꿈을 하고 싶지 않은 경우에는 어떻게 해야 할까?

 

답은 WriteLine이라는 이름에서 찾아볼 수 있다. 이름에서 짐작할 수 있듯이 WriteLine은 출력이 끝날 때마다 개행을 해주기 때문이다.

 

그래서 출력 후 개행을 하지 않는 Write가 존재한다.

Write

Console.Write("Good ");
Console.Write("day!");

WriteLine 대신 Write로 메소드를 바꾸고 원하는 문장을 입력한 후 실행해보자.

 

 

개행 없이 출력되는 것을 볼 수 있다. 이제 여러분은 원하는 문장을 출력하는 거에 이어 필요에 따라 개행을 하지 않게 만들 수 있다!

이스케이프 문자

대부분의 프로그래밍 언어는 이스케이프 문자라는 것을 지원한다.

 

이스케이프 문자는 역슬래시(한글 키보드로는 \를 치면 되며 여러분의 시스템 글꼴에 따라 한화 표기로 보일 수도 있고 옆으로 비스듬하게 눕힌 막대기가 보일 수 있다.)와 문자가 붙은 것으로 여러분이 출력을 하기 위해 작성한 문자열 안에서 특별한 기능을 하는 문자를 의미한다.

 

프로그래밍을 할 때 많이 쓰이는 이스케이프 문자 두 종류를 알아보자.

 

종류 기능
\n 줄 바꿈을 해주는 역할을 한다.
\t 탭의 역할을 한다. 시스템에 따라 4칸, 8칸의 공백이 생긴다.

 

여러분은 \n을 적절히 이용하여 Write에서도 개행을 만들 수 있다.

Console.Write("A\nB\nC");

// 출력
/*
A
B
C
*/

다음과 같은 문자열을 넣고 프로그램을 컴파일 하면 각 알파벳이 한 줄씩 띄워져서 출력되는 것을 볼 수 있다.

 

위에 보이는 //와 /* */는 주석인데, 프로그램을 컴파일할 때 무시되는 글자를 나타낸 것이다.

 

주석은 자신이 작성한 코드에 간단한 설명을 작성한다던가 해서 남이 자신의 코드를 좀 더 잘 이해시키려는 목적에 쓰일 수 있다.

 

혹은 개인적인 메모를 담을수도 있다. 사용 예시는 다음과 같다.

// 한줄짜리 주석이다. 컴파일러는 // 로 시작되는 줄이 있으면 그 줄의 문자를 모두 무시한다

/*
여러줄 짜리 주석을 입력하려고 하면 이와 같이
주석의 시작과 끝에
슬래시와 *를 달아주면 된다.
컴파일러는 / *를 만나면 * /에 도달하기 전까지 모든 문자를 무시한다.
*/

출력하려는 문자열에 \이 있으면 \ 뒤에 오는 문자를 이스케이프 문자로 인식하여 하나로 묶게 된다.

 

그러면 큰따옴표나 슬래시를 출력하며 어떻게 되지? 해보자.

 

 

큰 따옴표는 문자열의 시작과 끝을 나타내기 때문에 중간에 큰따옴표가 들어가면 그것을 문자열의 끝으로 인식해서 컴파일 에러가 발생한다. 프로그램을 만들 수 없다는 뜻이다.

 

 

역슬래시(\)의 경우도 마찬가지로 뒤에 이스케이프 문자를 완성할 문자가 와야 하는데 없다면서 에러를 일으킨다.

 

"그러면 큰따옴표나 슬래시를 별개로 출력하려면 어떻게 하지?"

 

이럴 때도 \가 해결해준다. 어떤 특수한 용도로 사용되는 문자를 출력하기 위해선 앞에 \를 붙여주면 된다.

Console.WriteLine("\\");
Console.WriteLine("\"");

// 출력
/*
\
"
*/

여러분이 어떤 문자열을 WriteLine과 Write를 사용해 출력하려는데 특정 문자에서 에러가 발생하면 대부분 \를 앞에 붙여주어 해결할 수 있다.

 

이 게시글에서는 WriteLine과 Write를 통해 문자열을 출력하고 자주 쓰이는 이스케이프 문자에 대해 알아보았다. 다음에는 변수와 자료형에 대한 내용을 배울 것이다.

728x90
728x90