작은 걸음 III — 프로그램으로 생각하기

못 찾은 경우도 처리하기

못 찾은 경우도 처리하기

이번에 배울 것

검색 결과에는 성공과 실패가 모두 있습니다. 프로그램은 두 경우를 구분해 안내해야 합니다.

실행해 보기

예제 · example2.cpp
void small_main()
{
    Array<int> numbers = {7, 2, 9, 4, 5};
    int value = input_int("Find: ");
    int index = -1;

    for (int i = 0; i < numbers.length(); i = i + 1)
        if (numbers[i] == value)
        {
            index = i;
            break;
        }

    if (index == -1)
        print("Not found");
    else
        print("Found at ", index);
}

콘솔에 9를 입력하면 Found at 2, 8을 입력하면 Not found가 나옵니다.

이번에는 break로 검색 반복만 끝내고, 뒤의 if에서 결과를 출력합니다. return으로 함수 전체를 끝내는 것과 구분하세요.

Exercise — 문자 찾기

String에서 문자 'a'가 처음 나타나는 위치를 linear search처럼 찾아 출력하세요. 없으면 -1입니다.

연습 문제 코드 · exercise2_starter.cpp
void small_main()
{
    String text = "Small C++";
    int index = -1;

    // find the first 'a'.

    print(index);
}

Hint

String도 length와 []를 사용할 수 있으므로 Array 검색과 거의 같습니다.

풀이 보기
void small_main()
{
    String text = "Small C++";
    int index = -1;

    for (int i = 0; i < text.length(); i = i + 1)
        if (text[i] == 'a')
        {
            index = i;
            break;
        }

    print(index);
}
← 이전 레슨다음 레슨 →