변수는 쉽게 말하면 값을 담아 두는 상자와 같다.
변수는 하나의 데이터 값을 가질 수 있으며, 한번 정해진 값은 고정이 아니라 계속해서 변할 수 있다. 또한 이 변수라는 녀석은 담기는 음식에 따라 그릇이 달라지듯 담기는 데이터에 따라 변수의 자료형(data type)이 결정된다.
문자는 문자를 담을수 있는 char 자료형, 정수는 정수를 담을 수 있는 int가 있다.
자료형 변수명;
변수를 만든다X 변수를 선언한다O 선언은 컴파일러에게 어떤 대상의 이름을 알려주는 것을 의미.
컴파일러가 임의의 메모리 공간에 이름을 붙여주면, 우리는 변수의 이름을 가지고 그 메모리의 위치에 접근 할 수 있다.
int a;
//int 자료형 a 변수명
정수형 변수를 메모리 공간에 할당하고 그 공간에 a라는 이름을 붙인것
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
char a = '안';
string b = "녕하세요";
Console.WriteLine("{0}{1}", a, b);
}
}
}
안녕하세요
계속하려면 아무 키나 누르십시오...
문자는 작은따옴표(') 문자열은 큰따옴표(")로 감싸주어야 한다.
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
bool a = true;
bool b = false;
Console.WriteLine("a={0}, b={1}", a, b);
}
}
}
a=true, b=false
계속하려면 아무 키나 누르십시오...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
object a = 12345678910;
object b = 12345.67891011;
object c = true;
object d = "안녕하세요";
Console.WriteLine("a={0}, b={1}, c={2}, d={3}", a, b, c, d);
}
}
}
a=12345678910, b=12345.67891011, c=True, d=안녕하세요
계속하려면 아무 키나 누르십시오 . . .
서식 지정자는 내가 지정한 형식대로 문자열을 출력 할 수 있도록 도와준다.
위에서 본 {0}이나 {1}과 같은 녀석들을 서식 항목이라 하며, 서식 항목은 이와 같은 형식으로 작성 할수 있다.
{인덱스[, 출력 너비][:서식 문자열]}
대괄호로 둘러싸인것은 선택적인 요소
index는 0부터 시작하는데, "a,b,a+b" 와 같이 뒤에 열거된 값의 순서이다.
int a = 81, b = 27;
Console.WriteLine("{0} + {1} = {2}", a, b, a + b); // 81 + 27 = 108
Console.WriteLine("{1} - {0} = {2}", a, b, b - a); // 27 - 81 = -54
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int a = 500;
float b = a; // 암시적 변환으로 별도의 구문이 필요하지 않음
Console.WriteLine("a={0}, b={1}", a, b);
double c = 123.45;
int d = (int)c;
Console.WriteLine("c={0}, d={1}", c, d);
}
}
}
a=500, b=500
c=123.45, d=123
계속하려면 아무 키나 누르십시오 . . .
실수와 정수를 문자열로 반환, 문자열을 실수나 정수로 형식으로 변환
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int a = 500;
float b = 60.44f;
string c = a.ToString();
string d = b.ToString();
Console.WriteLine("a={0}, b={1}, c={2}, d={3}", a, b, c, d);
string e = "123";
string f = "123.456";
int g = int.Parse(e);
float h = float.Parse(f);
Console.WriteLine("e={0}, f={1}, g={2}, h={3}", e, f, g, h);
}
}
}
a=500, b=60.44, c=500, d=60.44
e=123, f=123.456, g=123, h=123.456
계속하려면 아무 키나 누르십시오 . . .
ToString() 메소드는 특정 형식의 값을 문자열 형식으로 바꿔주는 역할을 합니다.
그리고 Parse()라는 메소드를 통해 문자열을 정수나 실수로 바꿔줄 수도 있습니다.
코드를 작성할 때 수천줄에서 수만줄이 넘어가는 프로그램을 만들게 될 때, 수많은 변수를 선언하여 코드를 작성하게 된다. 그러나 이 수많은 변수 중 값이 도중에 변경되어도 프로그램엔 영향을 미치지않는 것과 도중에 변경되면 심각한 오류를 일으킬 수 있는 것들이 있다.
코드를 작성하다가 나도 모르게 값을 변경하지 말아야 할 변수를 건드려서 버그가 발생할수있다.
C# 프로그래밍은 이 문제를 쉽게 해결해주는 const 라는 키워드가 존재한다.
이 const 키워드를 사용하게 되면 한번 초기화 된 값은 절대 변하지 않는다.
상수를 정의하는 방법은 변수의 선언방법과 유사하다.
상수의 선언 예제
const double PI = 3.141592;
const int month = 12;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
const int a = 50;
Console.WriteLine(a);
}
}
}
50
계속하려면 아무 키나 누르십시오 . . .
상수 a 값을 변경하게 된다면
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
const int a = 50;
a = 60; // 오류 발생!
Console.WriteLine(a);
}
}
}
11행에서 오류 CS0131: 할당식의 왼쪽은 변수, 속성 또는 인덱서여야 합니다.
//값 변경이 불가능하다.
상수의 선언과 초기화를 분리한다면?
const int a;
a = 60; // 오류 발생!
11행에서 오류 CS0145: const 필드에 값을 입력해야 합니다.
선언과 동시에 초기화를 하여야 하며, 초기화가 된 후로부터는 값의 변경이 불가능한 것을 알 수있다.