개발꿈나무
[C# 교과서] 2. C# 기초(1) - 변수, 데이터 형식 본문
변수 만들기
변수: 데이터를 메모리에 잠시 보관해 놓고 사용할 수 있는 임시 저장 공간
변수의 선언: (데이터 형색) (변수 이름); EX) int number;
데이터 형식
- int: 정수형 데이터
- string: 문자열 데이터
- bool: 참값 또는 거짓 값을 true와 false 키워드로 저장
- double: 실수형 데이터 저장
- object: C#에서 사용하는 모든 데이터 저장, 모든 데이터 형식을 담을 수 있음
변수 만들고 사용하기
- 변수의 첫 글자는 반드시 문자로 지정
- 길이는 255자 이하로 하고 공백을 포함할 수 없음
- C#은 유니코드를 지원하므로 영어, 한글, 한자 등 사용가능, 기타 특수기호는 사용 불가능
- C#에서 사용하는 키워드(예약어나 메서드 등의 이름)는 사용할 수 없음
- 변수는 대소문자 구분, 일반적으로 소문자로 시작
using System;
Class Variable
{
static void Main()
{
int number;
number = 7;
// int number = 7; 처럼 변수 선언과 동시에 초기화도 가능
Console.WriteLine(number);
}
}
//result: 7
리터럴 사용하기
리터럴: 변수에 저장할 수 있는 값 자체
- 정수는 숫자 그대로 표현하고, 실수는 대문자 F나 소문자 f를 접미사로 붙혀 표현
- 문자는 작은따옴표로 묶어야 하고, 문자열은 큰따옴표로 묶어야 함
using System;
Class Literal
{
static void Main()
{
Console.WriteLine(1234); // 정수 리터럴
Console.WriteLine(3.14F); // 실수 리터럴
Console.WriteLine('A'); // 문자 리터럴
Console.WriteLine("HELLO"); //문자열 리터럴
}
}
형식이 같은 변수 한번에 작업하기
using System;
Class VariableComma
{
static void Main()
{
int a, b, c; // 형식이 같은 변수 여러개 한번에 선언 가능
a = b = c = 10; // 형식이 같은 변수 여러개 한번에 초기화 가능
Console.WriteLine("{0}, {1}, {2}", a, b, c);
}
}
// result: 10, 10, 10
최근에 나오는 언어들은 변수를 한 줄에 하나씩만 선언하도록 강제하고 있음 -> 한 줄에 하나씩 선언 선호
상수 사용하기
상수: 한 번 초기화 되면 값을 바꿀 수 없는 변수로 const 키워드를 붙여 선언
const int MAX = 100;
숫자 데이터 형식 사용하기
숫자 데이터 형식
- 정수 데이터 형식 -> 부호 있는 숫자 / 부호 없는 숫자
- 실수 데이터 형식
정수 데이터 형식
- 부호 있는(signed): +, - 부호가 있는 정후형 (ex) sbyte, short, int, long
- 부호 없는(unsigned): 부호 없이 + 값만 다루는 정수형 (ex) byte, unshort, uint, ulong
실수 데이터 형식
(ex) float, double, decimal
숫자 형식의 리터럴 값에 접미사 붙이기
- long형: 대문자 L 또는 소문자 l
- float형: 대문자 F 또는 소문자 f
- double형: 대문자 D 또는 소문자 d
- decimal형: 대문자 M 또는 소문자 m
숫자 이외의 데이터 형식 사용하기
문자 데이터 형식: char
char grade = 'A';
문자열 데이터 형식: string
string name = "홍길동";
문자열 앞에 @ 기호를 붙이면 문자열 자체를 그대로 문자열로 저장 -> 이스케이프 시퀀스도 함께 저장
string multiLines = @"
안녕하세요.
반갑습니다.
";
//result
//
// 안녕하세요.
// 반갑습니다.
문자열 보간법: 문자열을 묶을 때 편리하게 사용 가능, $"{} 형태로 문자열 묶어서 출력
string message1 = "Hello";
string message2 = "C#";
Console.WriteLine($"{message1} {message2}");
//result: Hello C#
논리 데이터 형식: bool
bool bln = true;
bool bln2 = false
Console.WriteLine("{0} {1}", bln, bln2);
//result: True False
논리 데이터 형식에 미리 정의된 키워드는 true/false이지만 WriteLine()메서드에서 출력되는 문자열은 True/False
사용자에게 얻은 정보를 변수에 저장하기
문자열 입력 관련 메서드
- Console.ReadLine(): 콘솔에서 한 줄을 입력받음 (Enter 누를 때까지)
- Console.Read(): 콘솔에서 한 문자를 정수로 입력받음
- Console.ReadKey(): 콘솔에서 다음 문자나 사용자가 누른 기능 키를 가져옴
Console.ReadLine() 메서드 사용하기
using System;
Class ReadLineDemo
{
static void Main()
{
Console.WriteLine("이름을 입력하세요.");
string name = Console.ReadLine(); // <- 이 시점에서 대기(enter 누를 때까지)
Console.WriteLine($"{name}님 안녕하세요!");
//Console.WriteLine(Console.ReadLine()); 입력받은 값 그대로 출력
}
}
/*
<result>
이름을 입력하세요.
홍길동
홍길동님 안녕하세요!
*/
Console.Write() 메서드 사용하기
using Systme;
Class ConsoleReadDemo()
{
static void Main()
{
int x = Console.Read(); // 문자 하나를 입력하고 Enter
Console.WriteLine(x); // 입력한 문자의 ascii 코드 출력
Console.WriteLine(Convert.ToChar(x)); // ascii코드를 문자로 변환하여 출력
}
}
/*
<result>
A (입력값)
65
A
*/
형식 변환
- 암시적 형 변환: System 내부에서 자동으로 형 변환 -> 변환 형식이 안전하게 유지되며 데이터가 손실되지 않음
- 명시적 형 변환: user가 직접 형 변환 -> 데이터가 손실되어 엉뚱한 데이터가 저장될 수도 있음
int number1 = 1234;
long number2 = number1; //암시적 형변환
iong number1 = 1234;
int number2 = (int)number1; //명시적 형변환
Convert 클래스를 사용하여 형식 바꾸기
- Convert.ToString(): 숫자 데이터 -> 문자열
- Convert.ToInt32(): 숫자 데이터 -> 정수형
- Convert.ToDouble(): 숫자 데이터 -> 실수형
- Convert.ToChar(): 입력받은 숫자 또는 문자열 하나 -> 문자
int a = 1234;
string b = Convert.ToString(a);
정수 형식으로 변환하는 세가지 방법
- Convert.ToInt32()
- int.Parse()
- Int32.Parse()
이진수 다루기
//Convert.ToString(숫자, 2);
Convert.ToString(10, 2); // result: 1010
Convert.ToString(5, 2); // result: 101
가독성을 높이기 위해 비트 연산식(PadLeft()) 사용
//Convert.ToString(숫자, 2).PadLeft(bit수, '채울숫자');
Convert.ToString(5, 2).PadLeft(4, '0'); //result: 0101
이진수 리터럴
정수 앞에 0b 또는 0B 접두사를 붙여 이진수로 표현 가능
byte b1 = 0b0010; //이진수 0010 -> 십진수 2
byte b2 = 0B1100; //이진수 1100 -> 십진수 12
Console.WriteLine($"{b1} {b2}"); //컴퓨터에서는 자동으로 십진수 단위로 처리
//result: 2 12
var 키워드로 암시적으로 형식화된 로컬 변수 만들기
C#에서는 기본 제공 키워드 대신 var 키워드를 사용하면 입력하는 값에 따라 자동으로 형식이 결정됨
int number = 1234; //명시적으로 형식화된(explicit typing)
var number2 = 1234; //암시적으로 형식화된(implicit typing)
number.GetType(); //System.Int32
number2.GetType(); //System.Int32
변수의 기본값을 default 키워드로 설정하기
변수를 선언하고 C#에서 기본으로 제공하는 값으로 초기화하고 싶다면 default 키워드를 사용하여 초기화
int i = default;
double d = default;
char c = default;
string s = default;
'C# 기초' 카테고리의 다른 글
[C# 교과서] 4. C# 기초(3) - 제어문, 조건문, 반복문 (0) | 2022.01.13 |
---|---|
[C# 교과서] 3. C# 기초(2) - 연산자 (0) | 2022.01.11 |
[C# 교과서] 1. C# 준비 (0) | 2022.01.11 |
Visual Studio 사용법 (0) | 2021.09.17 |
[C#] WinForm에서 계산기 만들기(1) (0) | 2021.08.23 |