Unity 내배캠 TIL

C# 기초 문법 - 변수, 자료형, 연산자(2주차 1일)

오늘도즐겨 2024. 9. 23. 10:52

📕 문법강의-1주차 

1) 프로그래밍 기본 요소

2) 변수와 자료형

3) 연산자와 문자열 처리

 

Main 메서드는 필수적인 요소로 프로그램 실행을 위한 요소이다.

 

Console.WriteLine : 출력을 위한 메소드, 출력 후 다음 줄로 커서 이동 (\n을 포함)

Console.Write : 출력 후 커서가 마지막 자리 옆에 위치함

Console.ReadLine : 사용자의 입력을 받는 기능

Console.Write("Enter your name: ");
string name = Console.ReadLine();
Console.WriteLine("Hello, {0}!", name);
//Enter your name: 뒤에 커서 가 있고
//사용자의 입력을 받고 아래에 WriteLine에서 출력을 함
Console.WriteLine("Hello, {name}!"); //이렇게도 가능

 

Split : 한줄에 여러 값 입력받기

          10 20 을 입력받았다면, int 값처럼 보이는 10과 20을 나눠 10, 20으로 받아준다.

int.Parse : 정수형으로 보여지는 문자열을 실제 정수로 바꿔주는 기능

float.Parse : 실수형으로 보여지는 문자열을 실제 실수로 바꿔주는 기능

                   형변환과는 다른 개념이다. (입력받은 값이 10 20 이면, 처음엔  string 값으로 인지 하기때문)

Console.Write("Enter two numbers: ");
string input = Console.ReadLine();    // "10 20"과 같은 문자열을 입력받음

string[] numbers = input.Split(' ');  // 문자열을 공백으로 구분하여 배열로 만듦
int num1 = int.Parse(numbers[0]);     // 첫 번째 값을 정수로 변환하여 저장
int num2 = int.Parse(numbers[1]);     // 두 번째 값을 정수로 변환하여 저장

int sum = num1 + num2;                // 두 수를 더하여 결과를 계산

Console.WriteLine("The sum of {0} and {1} is {2}.", num1, num2, sum);

 

 

이스케이프 시퀀스

\', \"  : 따옴표 출력을 해야 할 경우 내부에서 \', \" 을 작성한다.

\r  :  맨앞으로 이동해 앞에서 부터 덮어쓰기가 되어버림

\\ : 역슬래시 삽입

\n : 줄바꿈 삽입

\t  : 탭 삽입

\b : 백스페이스삽입

 

주석

//  : 한줄주석 ctrl + k + d / 주석해제 : ctrl + k + u

/* */  : 여러줄 주석시 사용 :  ctrl + shift + ?

/// : 함수 위에 쓸 경우 함수를 설명하는 주석이 됨

 

자동완성

Tab 키를 누르면 자동완성이 됨

ctrl + space 자동완성이 없어졌을때 IntelliSense호출하여 다시 보이게하기

 

자료형

세분화해서 사용하면 메모리를 효율적으로 사용할 수 있다. ex. int / float / string 

 

리터럴

상수값으로 소스코드에 직접기록되어 있는 값

변수에 리터럴을 할당함으로써 프로그램에서 사용할 기본값이나 초기값을 설정할 수 있으며, const나 readonly 필드에도 자주 활용됩니다.

int number = 10;           // 숫자 리터럴
string greeting = "Hello"; // 문자열 리터럴
bool isActive = true;      // 불리언 리터럴
char grade = 'A';          // 문자 리터럴

 

변수

데이터를 저장하고 사용하기 위한 할당받은 공간

변수 선언 : 자료형 변수이름;

변수 초기화 : 변수이름 = 값;

선언 및 초기화 : 자료형 변수이름 = 값;

 

변수명 주의점❗

C#내에서 사용 하는 단어로 변수명 짓지 않기

a, b, c 와 같은 아무 의미 없는 변수명 짓지 않기

 

명시적 형변환 및 암시적 형변환

int num1 = 10;
long num2 = (long)num1; //명시적형변환
int num1 = 10;
float num2 = num1;//암시적 형변환
//- float의 크기가 int 보다 크기에 int를 float에 넣어 줄 수 있음

 

연산자

산술연산자(+, -, *, /, %), 관계연산자(==, !=, >, <, =<, =>), 논리연산자(&&, ||, !)

비트연산자(2진수로 처리, &, |, ^, ~, <<, >>), 복합대입연산자(+=, *=), 증감연산자(++,--)

 

비트연산자

int a = 0b1100; // 12 (2진수)
int b = 0b1010; // 10 (2진수)

int and = a & b; // 0b1000 (8)
int or = a | b; // 0b1110 (14)
int xor = a ^ b; // 0b0110 (6)

int c = 0b1011; // 11 (2진수)
int leftShift = c << 2; // 0b101100 (44)
int rightShift = c >> 1; // 0b0101 (5)

int d = 0b1100; // 12 (2진수)
int bit3 = (d >> 2) & 0b1; // 1 (3번째 비트)
d |= 0b1000; // 0b1100 | 0b1000 = 0b1100 (12)

 

2진수를 10진수로 변환하는 방법

이진수의 각 자리에 대해 2의 제곱수를 곱해서 합산하는 방법으로,

2진수를 10진수로 변환할 수도 있습니다.

예를 들어, 1010은 다음과 같이 계산됩니다.

1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 0 * 2^0 = 8 + 0 + 2 + 0 = 10

 

 

문자열 처리 기능 및 메서드

//연결
string str1 = "Hello";
string str2 = "World";
string str3 = str1 + " " + str2;

 

//분할
string str = "Hello, World!";
string[] words = str.Split(',');

 

//검색
string str = "Hello, World!";
int index = str.IndexOf("World");
//World가 시작되는 인덱스값을 가져오기때문에 7이라는 값이 출력됨
//대체
string str = "Hello, World!";
string newStr = str.Replace("World", "Universe");
//문자열을 숫자로 변환
string str = "123";
int num = int.Parse(str);
//숫자를 문자열로 변환
int num = 123;
string str = num.ToString();
//문자열 값 비교
string str1 = "Hello";
string str2 = "World";
bool isEqual = str1 == str2;

//문자열 대소 비교
string str1 = "Apple";
string str2 = "Banana";
int compare = string.Compare(str1, str2);
//사전에서 뒤에 나올수록 더 큼
//포멧팅
//문자열형식화
string name = "John";
int age = 30;
string message = string.Format("My name is {0} and I'm {1} years old.", name, age);
//문자열 보간
string name = "John";
int age = 30;
string message = $"My name is {name} and I'm {age} years old.";