반응형

C# 문자열

문자열은 일련의 문자로 구성되며, 각 문자는 0부터 시작하는 인덱스 값으로 참조할 수 있다.

예를 들어, "Hello"라는 문자열이 있다면 'H'는 인덱스 0, 'e'는 인덱스 1과 같은 방식이다.

 

또한, C#에서는 IndexOfSubstring이라는 두 가지 유용한 문자열 메소드를 제공한다.

IndexOf 메소드는 특정 문자나 문자열이 처음으로 출현하는 인덱스를 반환한다.

만약 해당 문자나 문자열이 존재하지 않는다면 -1을 반환한다. 아래 예시를 살펴보자.

 

예시:

string str = "Hello World";
int index = str.IndexOf('W'); // index는 6이 됩니다.

Substring 메소드는 문자열의 특정 부분을 추출하는 데 사용된다.

이 메소드는 두 가지 형태가 있다. 하나는 시작 인덱스만 지정하는 것이고,

다른 하나는 시작 인덱스와 길이를 모두 지정하는 것이다.

 

예시:

string str = "Hello World";
string sub = str.Substring(6); // sub는 "World"가 된다.
string sub2 = str.Substring(0, 5); // sub2는 "Hello"가 된다.

이러한 메소드들은 문자열을 다루는 데 있어 매우 중요하므로 잘 기억해두는 것이 좋다.

C# If 문

C#에서 if문은 주어진 조건이 참인 경우에만 코드 블록을 실행한다.
그런데 여러 조건을 확인해야 할 경우에는 if, else if, else 구조를 사용한다.


이 구조에서 if 문 다음에 오는 else if 문은 이전의 ifelse if 문의 조건이 거짓일 때만 확인된다.
그리고 else 문은 앞선 모든 조건이 거짓일 경우에 실행된다.

if (condition1)
{
    // 조건1이 참일 때 실행
}
else if (condition2)
{
    // 조건1이 거짓이고, 조건2가 참일 때 실행
}
else
{
    // 모든 조건이 거짓일 때 실행
}

또한 C#에서는 삼항 연산자를 사용하여 if-else 문을 간단하게 표현할 수 있다.
삼항 연산자는 "조건 ? 값1 : 값2"와 같은 형태로, 조건이 참일 경우 값1을, 거짓일 경우 값2를 반환한다.

var result = (condition) ? "참일 때의 값" : "거짓일 때의 값";

C# Switch문 정리

  • switch 문의 작동 원리: 주어진 조건에 따라 여러 코드 블록 중 하나를 실행.
  • break 키워드: switch 블록에서 더 이상의 코드 실행이나 케이스 테스트를 중단.
  • default 키워드: 모든 케이스와 일치하지 않을 때 실행될 코드를 지정.

예시코드

int day = 4; // 예를 들어, 오늘은 목요일
switch (day)
{
    case 1:
        Console.WriteLine("Monday");
        break;
    case 2:
        Console.WriteLine("Tuesday");
        break;
    case 3:
        Console.WriteLine("Wednesday");
        break;
    case 4:
        Console.WriteLine("Thursday"); // day 4에 해당하므로 "Thursday"가 출력.
        break;
    case 5:
        Console.WriteLine("Friday");
        break;
    case 6:
        Console.WriteLine("Saturday");
        break;
    case 7:
        Console.WriteLine("Sunday");
        break;
    default:
        Console.WriteLine("Looking forward to the Weekend."); // 일치하는 케이스가 없을 때 출력.
        break;
}
반응형
반응형

출처 : 프로그래머스(https://school.programmers.co.kr/)

 

문제만 봐서는 잘 이해가 안 됐는데 예를 보니까 이해가 됐습니다.

abcde라는 문자열을 입력했을 때, 문자를 하나씩 떼어내서 출력하는 프로그램을 완성하라는 문제입니다.

 

정답 예제1 (for문 사용)

using System;

public class Example
{
    public static void Main()
    {
        String s;

        Console.Clear();
        s = Console.ReadLine();
        
        for(int i = 0;i < s.Length;i++){
            char r = s[i];
            Console.WriteLine(r);
            }

    }
}

저는 for문을 사용해서 해결했습니다.

먼저 입력되는 문자열을 담아주는 변수 s의 길이만큼 for문을 반복해 줍니다.

그리고 char 타입의 변수 r에 문자열의 첫 번째부터 끝까지 차례대로 할당합니다.

Console.WriteLine함수를 통해 r변수에 담긴 문자를 차례대로 출력합니다.

 

  • 문자열 'abcde'를 입력했을 때 출력 결과 

 

 

 

 

 

 

정답 예제 2(foreach문 사용)

Foreach문법

foreach문은 컬렉션(collection)이나 배열(array) 등의 요소를

하나씩 순회하면서 처리할 때 사용되는 반복문입니다.

foreach문은 반복 대상의 데이터형에 따라 자동으로 반복을 처리하기 때문에,

일반적인 for문보다 코드가 간결해지고 가독성이 좋아집니다.

using System;

public class Example
{
    public static void Main()
    {
        String s;

        Console.Clear();
        s = Console.ReadLine();
        
        foreach(char r in s){
            Console.WriteLine(r);
        }

    }
}

개인적으로는 foreach문으로 문제를 푸는 것이

코드 가독성면에서도 훨씬 깔끔하다는 생각이 들었습니다.

 

  • 문자열 'abcde'를 입력했을 때 출력 결과

반응형

+ Recent posts