2024. 8. 30. 17:44ㆍ카테고리 없음
개요
기초 문법 총정리2
랜덤 숫자 생성 (Random Number Generation)
설명
컴퓨터 프로그램에서 난수를 생성하는 방법입니다. C#에서는 Random 클래스를 사용하여 난수를 생성할 수 있습니다.
1. Random 클래스 사용
Random 클래스는 난수를 생성하는 데 사용됩니다. 객체를 생성한 후, Next 메서드를 사용하여 난수를 생성할 수 있습니다.
코드
Random random = new Random();
int randomNumber = random.Next(); // 0과 int.MaxValue 사이의 난수 생성
int randomNumberInRange = random.Next(1, 101); // 1과 100 사이의 난수 생성
2. 랜덤 숫자 생성 예제
다음은 Random 클래스를 사용하여 1부터 100 사이의 난수를 생성하는 예제입니다.
코드
Random random = new Random();
int randomNumber = random.Next(1, 101);
Console.WriteLine($"Random number between 1 and 100: {randomNumber}");
문자열 처리 (String Manipulation)
설명
문자열 처리란 문자열을 다루고 조작하는 다양한 방법을 의미합니다. C#에서는 문자열을 쉽게 처리할 수 있는 다양한 메서드를 제공합니다.
1. 문자열 생성 및 초기화
문자열은 큰따옴표로 묶어 생성할 수 있습니다.
코드
string message = "Hello, World!";
2. 문자열 길이 확인
문자열의 길이는 Length 속성을 사용하여 확인할 수 있습니다.
코드
string message = "Hello, World!";
int length = message.Length; // 13
3. 문자열 비교
== 연산자나 Equals 메서드를 사용하여 문자열을 비교할 수 있습니다.
코드
string str1 = "Hello";
string str2 = "World";
bool isEqual = str1 == str2; // false
bool isEqualMethod = str1.Equals(str2); // false
4. 부분 문자열 추출
Substring 메서드를 사용하여 문자열의 일부를 추출할 수 있습니다.
코드
string message = "Hello, World!";
string hello = message.Substring(0, 5); // "Hello"
5. 문자열 분할
Split 메서드를 사용하여 문자열을 특정 구분자로 나눌 수 있습니다.
코드
string message = "Hello, World!";
string[] words = message.Split(','); // { "Hello", " World!" }
6. 문자열 합치기
+ 연산자나 String.Concat 메서드를 사용하여 문자열을 합칠 수 있습니다.
코드
string str1 = "Hello";
string str2 = "World";
string message = str1 + ", " + str2 + "!"; // "Hello, World!"
7. 문자열 포맷팅
String.Format 메서드를 사용하여 문자열을 포맷팅할 수 있습니다.
코드
string name = "John";
int age = 30;
string message = String.Format("Name: {0}, Age: {1}", name, age); // "Name: John, Age: 30"
8. 문자 배열 변환
문자열을 문자 배열로 변환하거나, 그 반대 작업을 할 수 있습니다.
코드
string message = "Hello";
char[] chars = message.ToCharArray(); // { 'H', 'e', 'l', 'l', 'o' }
string newMessage = new string(chars); // "Hello"
내용 - out과 ref (Pass by Reference)
설명
C#에서 out과 ref 키워드는 메서드에 인수로 전달된 변수를 참조로 전달하는 데 사용됩니다. 둘 다 메서드 내부에서 값을 변경할 수 있으며, 메서드 호출 후에도 변경된 값이 반영됩니다.
1. out
사용 예: 메서드가 여러 값을 반환해야 할 때 유용합니다.
특징:
- 메서드가 반환하기 전에 반드시 값을 할당해야 합니다.
- 호출할 때 초기화되지 않아도 됩니다.
코드
void GetValues(out int x, out int y)
{
x = 10;
y = 20;
}
int a, b;
GetValues(out a, out b);
Console.WriteLine($"a: {a}, b: {b}"); // a: 10, b: 20
2. ref
사용 예: 변수의 현재 값을 메서드 내부에서 수정해야 할 때 유용합니다.
특징:
- 메서드가 호출될 때 변수는 초기화되어 있어야 합니다.
- 메서드 내부에서 값을 수정할 수 있습니다.
코드
void Increment(ref int number)
{
number++;
}
int value = 5;
Increment(ref value);
Console.WriteLine(value); // 6
out 과 ref의 차이점
out은 메서드 내부에서 값을 할당해야 하며, 초기화되지 않은 변수를 받을 수 있습니다.
ref는 변수의 초기화가 필요하며, 메서드 호출 전에 이미 할당된 값을 전달받습니다.
is와 as (Type Checking and Casting)
설명
C#에서 is와 as 키워드는 객체의 타입을 확인하고 변환하는 데 사용됩니다. 두 키워드는 타입 검사 및 변환을 더 간단하고 안전하게 수행할 수 있도록 도와줍니다.
is (타입 확인)
사용 예: 객체가 특정 타입인지 확인할 때 사용합니다.
특징:
- 결과는 true 또는 false로 반환됩니다.
- 타입이 일치하면 true, 그렇지 않으면 false를 반환합니다.
코드
object obj = "Hello, World!";
if (obj is string)
{
Console.WriteLine("obj is a string");
}
else
{
Console.WriteLine("obj is not a string");
}
코드해석
if (obj is string) : obj 가 string타입이라면 obj is a string를 출력하세요.
출력결과 = obj is a string
as (타입 변환)
사용 예: 객체를 특정 타입으로 안전하게 변환할 때 사용합니다.
특징:
타입 변환이 성공하면 변환된 객체를 반환합니다.
실패하면 null을 반환합니다.
코드
object obj = "Hello, World!";
string str = obj as string;
if (str != null)
{
Console.WriteLine("Conversion successful: " + str);
}
else
{
Console.WriteLine("Conversion failed");
}
코드해석
object obj = "Hello, World!"; : obj 변수는 object 타입으로 선언되며, "Hello, World!"라는 문자열을 할당받습니다.
string str = obj as string; :
- as 연산자를 사용하여 obj를 string 타입으로 변환하려고 시도합니다.
- as 연산자는 변환이 성공하면 변환된 객체를 반환하고, 실패하면 null을 반환합니다.
- 여기서 obj는 실제로 string 타입이므로 변환이 성공하고, str에는 "Hello, World!"라는 문자열이 할당됩니다.
출력결과 = Conversion successful: Hello, World!
차이점:
is는 객체가 특정 타입인지 확인하는 데 사용됩니다.
as는 객체를 특정 타입으로 변환하는 데 사용되며, 변환에 실패하면 null을 반환합니다.