본문 바로가기

Programming/.NET

[C#] 03. 변수와 상수

[C#] 03. 변수와 상수

 

변수와 상수는 프로그램을 하지 않더라도 건너 건너 한 번쯤은 들어보셨을 거라 생각합니다.

쉽게 설명하면 변수는 변하는 수 또는 변할 수 있는 수이며, 상수는 변하지 않는 수로 이해할 수 있습니다.

 

변수

변수는 앞서 설명했듯이 '변하는 수' 또는 '변할 수 있는 수'입니다.

바꿔 말하면 특정되지 않은 수라는 이야기입니다.

 

조금 더 쉽게 설명하면 변수를 하나의 공간 즉 방이라고 생각할 수 있습니다.

그리고 이러한 방마다 붙는 라벨을 자료형이라고 할 수 있습니다.

(자료형에 대한 설명은 다음에 자세히 하도록 하겠습니다.)

 

그러면 간단한 예제로 변수의 사용법에 대하여 알아보겠습니다.

아래 예제에서는 가장 많이 사용하는 자료형인 int형으로 진행하였습니다.

int형은 정수형 숫자를 저장하여 사용하는 자료형입니다.

int형 변수 예제

위 예제의 내용은 int로 선언된 변수 var1과 var2에 각각 1과 20을 저장하여 출력하는 구문입니다.

출력 결과는 당연하겠지만 아래와 같습니다.

int형 변수 예제 결과

그렇다면 int형 변수인 var1과 var2에 각각 실수와 문자열을 넣었을 경우에는 당연히 아래와 같이 오류가 발생합니다.

var1과 var2 모두 오류가 발생했지만,

var1에는 "명시적 변환이 있습니다."라는 구문이 있습니다.

이러한 경우에는 명시적으로 자료형을 변환해 줄 수 있습니다.

var2의 경우에는 그냥 오류입니다. 수정해줘야지요.

 

명시적 형변환이라는 이야기가 나왔습니다.

나중에 자료형의 형변환에 대하여 설명하겠지만 간단히 설명하면 자료형의 경우

명시적 또는 묵시적으로 형변환하여 사용이 가능합니다.

여기에서는 "지금은 오류지만 명시적 형변환해서 사용할 수 있어"라는 말이 표시된 것입니다.

 

그렇다면 var1에 대하여 설명해보도록 하겠습니다.

var1은 int형으로 선언되었습니다. int형은 정수형으로 정수만 저장이 가능한 변수입니다.

그런데 위에서는 '1.1', 즉 실수를 int형 변수인 var1에 저장한다고 한 것입니다.

여기까지는 정수형에 실수를 입력한다고 했으니 오류입니다.

하지만 실수의 소수점 이하가 제거된다면? 정수가 되는 것입니다.

이렇게 데이터 손실이 발생하더라도 특정 자료형으로 형변환하는 것을 명시적 형변환이라고 합니다.

 

아래처럼 실수 '1.1' 앞에 변환할 자료형인 '(int)'를 지정하면

소수점 이하의 데이터를 지우고 var1에 정수형으로 저장됩니다.

명시적 형변환 예제
명시적 형변환 결과

 

상수

상수는 위에서 설명한 변수처럼 변경할 수 없는 수입니다.

즉 한번 값을 선언한 경우 다른 값으로 변경할 필요가 없는 경우에 상수를 사용합니다.

 

이러한 상수는 변수 선언 시 자료형 앞에 const 키워드로 지정하여 사용할 수 있습니다.

다음 예제에서 const 키워드 사용법을 알아보겠습니다.

 

아래는 const 키워드로 var1를 상수화 한 구문입니다.

하지만 그냥 봐서는 이게 상수인지 구분이 안될 수 있습니다.

const 키워드 예제
const 키워드 결과

 

하지만 아래처럼 const로 지정된 var1을 다시 재정의하려면 오류가 발생합니다.

'할당식의 왼쪽은 변수, 속성 또는 인덱서여야 합니다.'

이 말은 var1이 const 키워드로 인하여 상수화되었다는 것입니다.

const 키워드 재정의

 

그렇다면 다음 예제를 통하여 const 키워드로 지정된 것을 선언과 동시에 정의하는 것이 아닌,

선언 후 정의하는 경우에 대하여 알아보겠습니다.

결과를 보면 일단 오류가 발생한 것을 확인할 수 있습니다.

 

9번 라인에서 'const int var1;'을 선언하고 10번 라인에서 'var1 = 1;'로 재정의한다는 구문이지만.

9번 라인에서 'const 필드에 값을 입력해야 합니다.'라는 오류가

10번 라인에서 '할당식의 왼쪽은 변수, 속성 또는 인덱서여야 합니다.'라는 오류가 발생했습니다.

 

9번 라인의 오류를 통하여 const 키워드는 선언과 동시에 값을 정의해야 한다는 점과

10번 라인의 오류를 통하여 const 키워드로 선언된 변수의 경우

어떠한 경우에도 재정의 할 수 없다는 점을 알 수 있습니다.

 

즉 const 키워드를 사용하여 변수를 상수화해서 사용하는 경우

선언과 동시에 값을 정의해야 한다는 것을 알 수 있습니다.

 

여기까지 변수와 상수에 대한 내용을 정리해봤습니다.

다소 부족하지만 긴 글 읽어주셔서 감사합니다.

 

다음에는 앞서 말씀드린 자료형에 대하여 알아보도록 하겠습니다.

감사합니다.

'Programming > .NET' 카테고리의 다른 글

[C#] 05. var와 object  (0) 2020.03.29
[C#] 04. 자료형  (0) 2020.03.21
[C#] 02. using 지시문과 네임스페이스  (0) 2020.02.19
[C#] 0코드로 인해 종료되었습니다.  (0) 2020.02.08
[C#] 01. 프로젝트 생성 & "Hello World"  (0) 2020.02.04