게임 기획/내일배움캠프(개발)

[TIL] C# 사전문법 기초 (데이터 다루기)

선조미 2025. 4. 3. 16:34

Visual studio 실행 후 C# 문법 실습 시작!


Console.WriteLine("출력하고 싶은 언어 입력");

 

Console.WriteLine(수식입력);

쌍따옴표 없이 수식만 입력하면 자동으로 계산 된 값이 표시된다.

 

// 를 입력하면 해당 줄은 주석 취급되며 코드에 영향을 주지 않는다. (메모 및 전달사항으로 활용 가능)

변수 = 데이터가 안전하게 살 수 있는 집
기본 형식: 데이터 형식 변수이름 ;

 

데이터 형식

집에 살 수 있는 데이터가 무엇인지 정해준다. (자료형이라고 지칭)

 

문자열: string

  • string codingclub = "팀스파르타";

문자: char

  • char team_1 = '팀';
  • char team_2 = '스';
  • char team_3 = '파';
  • char team_4 = '르';
  • char team_5 = '타';

정수: int

  • int age = 14; (정상)
  • int level = "32"; (비정상: "" 쌍따옴표 속에 들어가 있는 것은 문자로 취급하기 때문에 int 변수와 함께 사용하면 오류)

실수: float(소수점 7자리까지), double(소수점 15~6자리까지)

  • float exp = 56.5f; (정상)
  • float speed = 56.5; (비정상: 표기 없이 실수를 사용하면 double로 취급하기 때문에 float 변수와 함께 사용하면 오류)
  • double exp = 56.5d; (정상)
  • double speed = 56.5; (정상)
중요 (무조건 알아야 됨)
참고 (이후에 활용 될 수 있음)
기타 (많이 쓰이지 않으니 다른 것들부터 익숙해지기)
자료형
특징
기본값
크기
bool
true , false
 
false
1 byte
string
문자열
" " 로 감싸야 함
null
계속 변함
char
문자
' ' 로 감싸야 함
'\0'
2 byte
sbyte
8bit 정수
-128 ~ 127
0
1 byte
byte
8bit 정수 (부호 없음)
0 ~ 255
0
1 byte
short
16bit 정수
–32,768 ~ 32,767
0
2 byte
ushort
16bit 정수 (부호 없음)
0 ~ 65,535
0
2 byte
int
정수
–2,147,483,648 ~ 2,147,483,647
0
4 byte
uint
정수 (부호 없음)
0 ~ 4,294,967,295
0
4 byte
long
64bit 정수
–9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
0
8 byte
ulong
64bit 정수 (부호 없음)
0 ~ 18,446,744,073,709,551,615
0
8 byte
float
실수
1.5E-45 ~ 3.4E+38 (7자리 유효) 0.0000001f 뒤에 f를 붙여 야함
0
4 byte
double
실수
5.0E-324 ~ 1.7E+308 (15자리 유효) 0.000000000000001d 뒤에 d를 붙여야 하지만 붙이지 않더라도 double로 인식
0
8 byte
Decimal
실수
±1.0 x 10-28 ~ ±7.9228 x 1028 28-29개의 자릿수
0
16 byte

 

변수 이름

변수를 구분해주는 이름의 역할을 한다. 원하는 대로 만들 수 있다.

영어, 숫자, 언더바 사용해서 만드는 것을 추천

 

ex)

int age;             < 숫자 형식을 보관할 수 있는 변수

string name;     < 문자 형식을 보관할 수 있는 변수


변수 수정

변수값을 수정하면 가장 마지막에 수정 된 값으로 출력된다. 

- 형식이 있으면 변수 생성(string codingclub = "팀 스파르타";), 형식이 없으면 데이터 저장(codingclub = "스파르타코딩클럽";)

 

혹시 수정 순서에 따라 같은 변수이름을 여러개의 값으로 출력 할 수 있는지 궁금해 해봤더니 되는 것 확인!

같은 변수 이름이지만 하나의 프로젝트 내에서도 변수값 수정 타이밍에 따라 여러개의 값이 출력 될 수 있는 것 같다.

변수값 지정 후 출력하면 지정 된 값으로 출력, 변수 수정하면 수정한 순간부터 그 다음 내용은 수정 내용으로 출력.

(아직은 배운 내용이 어디에 쓰이는지조차 모르는 초보자 이기 때문에 일단 배우는대로 다 기억해두기,,)

 

형변환(int ↔ float)
int x = 10;
float y = 10.5;
float z = (float)x + y; // 사용하고 싶은 변수 앞에 괄호하고 변경하고 싶은 자료형 명시

Console.WriteLine(z); // 20.5 출력

int x = 10;
float y = 10.5;
int z = x + (int)y; // 사용하고 싶은 변수 앞에 괄호하고 변경하고 싶은 자료형 명시



Console.WriteLine(z); // 20 출력 (소수점 아래는 버림)

 

형변환(다른 자료형 ↔ 문자)
다른 자료형을 문자로 바꿀 때는 간단히 뒤에 .ToString(); 붙이면 변환 가능
str = string의 축약어


int
 x = 10;
string xStr = x.ToString(); // "10"

float y = 10.5f;
string yStr = y.ToString(); // "10.5"

bool  myBool = true;
string boolStr = myBool.ToString(); // "true"

문자를 다른 자료형으로 바꿀 때는 3가지 방법 사용 가능

1. Convert 클래스 이용

string iStr = "10";
int x;
x = Convert.ToInt32(iStr); // x:10

string bStr = "true";
boll b;
b = Convert.Toboolean(bStr); // b:true

2. Parse() 함수 사용
- int.Parse();: 입력값의 형식이 정확한(정수처럼 생긴 문자열) 경우 숫자로 변환 가능, 즉 string만 받을 수 있다.
- Convert.ToInt32();: 숫자, 문자, null 형식의 입력값을 모두 받을 수 있다.

string iStr = "10";
int x;
x = int.Parse(iStr); // x:10

string bStr = "true";
boll b;
b = bool.Parse(bStr); // b:true

3. TryParse() 함수 사용
(out 개념과 관련해 공부해봤는데 아직 예제들을 온전히 알아듣기엔 모르는 함수가 많다,, 예제를 알아들을 수 있기 전까진 일단 함수 바깥까지 변수값을 적용해준다 정도로 이해하고 넘어가겠다.)

string iStr = "10";
int x;
int.TryParse(iStr, out x); // x:10

string bStr ="true";
bool b;
bool.TryParse(bstr, out b); // b:true
메소드
설명
ToBoolean
부울 형태로 변환
ToByte
유니코드를 정수 형태로 변환
ToChar
유니코드 형태로 변환
ToDeximal
Decimal 숫자 형태로 변환
ToDouble
실수 형태로 변환
ToInt16 16비트 부호 있는 정수로 변환
ToInt32 32비트 부호 있는 정수로 변환
ToInt64
64비트 부호 있는 정수로 변환
ToSbyte 8비트 부호 있는 정수로 변환
ToSingle 단정 밀도 부동 소숫점으로 변환
ToString 문자열로 변환
ToUnit16
16비트 부호 없는 정수로 변환
 ToUnit32 32비트 부호 없는 정수로 변환
ToUnit64
64비트 부호 없는 정수로 변환

 


기억력이 안 좋은 관계로 일단 전부 메모,,

 

- F5: 디버깅(작업한  콘솔 창 볼 수 있음)

- 새 프로젝트: 우측 솔루션 탐색기에서 작업중인 프로그램 우클릭 > 새 프로젝트

- 새 프로젝트 디버깅: 상단의 톱니바퀴 눌러 디버깅 할 프로젝트로 변경

 

<용어>

- 선언: 변수를 처음 만드는 것을 '선언하다'로 표현 (int x;)

- 할당: 변수에 데이터를 넣어주는 것 (int x = 10;)

- 초기화: 가장 처음 데이터를 할당하는 것

  ( int x =10; // 처음 데이터가 들어갔을 때 초기화 했다고 말한다.

     x = 21;

     x = 31;)