본문 바로가기
유니티

Day 7 - C# 문법(WriteLine, 이스케이프 시퀀스, 자료형, 변수, 연산자 등)

by shin0707 2024. 4. 22.
728x90

  • 주제

1. Console.WriteLine 과 Console.Write 비교

2. 이스케이프 시퀸스(Escape Sequence)

3. 자료형

4. 변수(선언 및 초기화, 생성규칙, 코드 컨벤션, 형변환)

5. Console.ReadLine

6. 연산자(산술, 관계, 논리, 복합 대입, 증감 연산자)

7. 문자열 처리 기능(생성, 연결, 분할, 검색, 대체, 비교, 포멧팅)


  • 공부 내용

1. WriteLine 과 Write 비교

 

1-1. Console.WriteLine(value)

-C#에서 콘솔 출력을 할 때 기본적으로 사용

-줄바꿈 기능 포함

(출력한 후에는 다음 줄로 커서가 이동한다)

-value는 어떤 (문자열, 숫자, 변수, 연산식 등) 값 이든 가능

-콘솔 창에 Console.WriteLine(value)을 입력하고 F5를 누르면, value값을 출력

 

1-2. Console.Write (value)

-줄바꿈 기능 불포함

(Write를 사용하면 마지막 내용은 WriteLine으로 마무리)

Console.Write("Nice to meet you! ");
Console.Write("We are Learning "); 
Console.WriteLine("at TeamSparta");
Console.WriteLine("Let us study together!");

[출력]
Nice to meet you! We are Learning at TeamSparta
Let us study together!

2. 이스케이프 시퀀스(Escape Sequence)

이스케이프 시퀀스 설명
\'  또는 \" 작은따옴표(') 또는 큰따옴표(") 삽입
\n 줄바꿈 삽입
\t 탭 삽입
\\ 역슬래시(\) 삽입
\r 현재 줄 맨 앞으로 이동
\b 백스페이스 삽입

 

Console.WriteLine("새로운 코드를 보게되면,");
Console.WriteLine("항상 \"왜?\"에 집중");          // \"
Console.WriteLine("그리고 Try, \nFail quickly."); // \n

[출력]
새로운 코드를 보게되면,
항상 "왜?"에 집중
그리고 Try,
Fail quickly.
Console.WriteLine("Name \tAge"); // \t
Console.WriteLine("핑고 \t30");

[출력]
Name    Age
핑고    30
Console.WriteLine("C:\\TeamSparta\\"); // \\

[출력]
C:\TeamSparta\

3. 자료형

특성에 따른 정확한 데이터 표현과 메모리를 효율적으로 사용하기 위해서, 세분화가 필요하다.

자료형 크기(바이트) 범위
sbyte 1 -128 ~ 127
byte 1 0 ~ 255
short 2 -32,768 ~ 32,767
ushort 2 0 ~ 65,535
int 
ex)  int i = 9;
4 -2,147,483,648 ~ 2,147,483,647
uint 4 0 ~ 4,294,967,295
long 8 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
ulong 8 0 ~ 18,446,744,073,709,551,615
float
ex) float f = 9.0f;
4 ±1.5 × 10^-45 ~ ±3.4 × 10^38
double 8 ±5.0 × 10^-324 ~ ±1.7 × 10^308
decimal 16 ±1.0 × 10^-28 ~ ±7.9 × 10^28
char 2 유니코드 문자
string
ex) string s = "word"
  유니코드 문자열(배열)
bool
ex) bool isMonday = true;
1 true 또는 false

4. 변수

데이터(숫자, 문자 등)를 저장하고 사용하기 위해 할당받은 공간

 

4-1. 변수 선언 및 초기화 방법

int num;                 //변수 선언: 자료형 변수이름;
num = 10;                //변수 초기화: 변수이름 = 값;

int num1, num2, num3;    //변수 여러개 선언
num1 = num2 = num3 = 10; //변수 여러개 초기화

int num = 10;            //변수 선언과 동시에 초기화

 

4-2. 변수명 생성 규칙

- 첫 문자는 알파벳, 언더스코어(_)가 올 수 있다.

- 두번째 문자부터는 알파벳, 언더스코어, 숫자가 올 수 있다.

- 대소문자를 구분한다.

- 키워드와 같은 이름으로 사용할 수 없다. (키워드: C#에서 이미 예약된 단어들. ex) class, if, else, bool, ...)

int playerScore;
string playerName;
float itemPrice;

 

 

4-3. 코드 컨벤션

(개발자들 사이에서 약속된 코드 작성 규칙)

-첫 글자 대문자, 이후 단어의 첫 글자 대문자 : 클래스, 메서드, 프로퍼티 이름(ClassName)

-첫 글자 소문자, 이후 단어의 첫 글자 대문자 : 변수, 매개변수, 로컬변수(variableName)

-모두 대문자 : 대문자 약어(ID, HTTP, FTP) 

 

4-4. 형변환

(자료형이 다른 변수 간에 값을 할당하거나 연산을 수행할 때 사용,

형변환이 진행된 기존의 변수 값은 바뀌지 않음.)

 

-숫자를 숫자로:

(변환할 자료형)변수

float num1 = 90.25f;
int num2 = (int)num1;     //num1이 float에서 int로 형변환

Console.WriteLine(num1);
Console.WriteLine(num2);

[출력]
90.25                     //num1 값은 그대로
90

 

 

-문자열을 숫자로:

int.Parse(string 변수)

int baseNumber = 1;
string koreanAge = "29";                             
int internationalAge = int.Parse(koreanage) - baseNumber;         // string을 int로 변환하여 저장

Console.WriteLine("Your international age is {0}!", internationalAge); //{0}= 콤마 이후 첫번째자리값

[출력]
Your international age is 28!

 

-숫자를 문자열로:

변수.ToString()

int num = 777;
string str = num.ToString();
string luck = "오늘의 행운 번호: " + str;

Console.WriteLine(luck);

[출력]
오늘의 행운 번호: 777

 


5. Console.ReadLine

-C#에서 콘솔 값을 입력 받기 위해 사용(=사용자 입력창)

Console.Write("Enter your name: ");
string name = Console.ReadLine();       // name은 사용자가 입력한 이름값을 저장하는 변수
Console.WriteLine("Hello, {0} and !", name); 

[출력]
Enter your name: (Kero 입력)
Hello, Kero!

6. 연산자

6-1. 산술연산자

연산자 설명
+ 덧셈
- 뺄셈
* 곱셉
/ 나눗셈
% 나머지

 

6-2. 관계연산자

두 값을 비교하여 참 또는 거짓으로 값을 반환(true, false)

연산자 설명
== 같음
!= 다름
>
< 작음
>= 크거나 같음
<= 작거나 같음

 

6-3. 논리연산자

연산자 설명 예시
&& AND a && b : a와 b 둘다 true이면, true
|| OR a || b : a와 b 둘 중 하나가 true이면, true
! NOT !a : a가 false이면 true a && !b :
a가 true, b가 false이면 true

 

6-4. 복합 대입 연산자

연산자 설명 예시
+= x = x + y; x += y;
-= x = x - y; x -= y;
*= x = x * y; x *= y;
/= x = x / y; x /= y;
%= x = x % y; x %= y;

 

6-5. 증감 연산자

연산자 설명
++ 1증가
-- 1감소

 

for (int i = 0; i < 5; i++) 
{
	float x = i + 2;       //float x = 2
	Console.WriteLine(x);    
}

[출력]
2
3
4
5
6

 


7. 문자열 처리 기능

7-1. 문자열 생성 및 연결

string str1 = new string('H', 5); // 문자 'H'를 5개로 구성된 문자열 생성
string str2 = "Home";
string str3 = str1 + " " + str2; // 공백을 넣어 각 문자열을 구분하여 연결

Console.WriteLine(str1);         
Console.WriteLine(str3); 

[출력]
HHHHH                           
HHHHH Home

 

7-2. 분할

string str = "Welcome, Home!";
string[] words = str.Split(','); //str 문자열을 쉼표로 구분하여 분할하여 words 생성

Console.WriteLine("{0}", words);
Console.WriteLine("{1}", words);

[출력]
Welcome
Home!

 

7-3. 검색 및 대체

string str = "Welcome, Home!";
int index = str.IndexOf("Home");          // "Home" 문자열의 첫 번째 인덱스 값을 index 변수에 저장
string newStr = str.Replace("Welcome", "Come"); // "Welcome" 문자열을 "Come" 문자열로 대체

Console.WriteLine(index);
Console.WriteLine(newStr);

[출력]
9
Come, Home!

 

7-4. 비교

string str1 = "ant";
string str2 = "Ant";
bool isEqual = str1 == str2; //문자열을 비교한 후 그 결과를 isEqual 변수에 저장
int compare = string.Compare(str1, str2);

Console.WriteLine(isEqual);
Console.WriteLine(compare);

[결과]
False
-1           //값이 0보다 작으면 str1 < str2, 0이면 str1 == str2, 0보다 크면 str1> str2


string str1 = "Ant";
string str2 = "ant";
int compare = string.Compare(str1, str2);
Console.WriteLine(compare);

[결과]
1            // Ant > ant

 

7-5. 포맷팅

string name = "Shin";
int age = 30;
string message = string.Format("My name is {0} and I am {1} years old.", name, age); //형식 문자열을 사용
string sentence = $"My name is {name} and I am {age} years old."; //문자열 보간 기능을 사용

Console.WriteLine(message);
Console.WriteLine(sentence);

[출력]
My name is Shin and I am 30 years old.
My name is Shin and I am 30 years old.
728x90
반응형