Return to Video

11-41 We Have Intercepted A Secret Message

  • 0:01 - 0:05
    우선, decode 메소드를 어떻게 사용할지 생각해 봅시다. 이 메소드는 해독된
  • 0:05 - 0:10
    메시지를 리턴 할겁니다. 그리고 매개변수는 필요 없습니다.
  • 0:10 - 0:19
    decoder 테스터를 보면, docoder.decode의 결과를 출력해야 합니다.
  • 0:19 - 0:24
    decoder 테스터는 암호화된 메시지를 이미 갖고 있습니다. 그래서 이 문자열을
  • 0:24 - 0:28
    다시 넘길 필요가 없습니다. 이제 docder로 다시 돌아와서, 우리는 0번째
  • 0:28 - 0:34
    문자로 시작해서 각각 10번째 문자만 저장하는 for문을 작성해야 합니다.
  • 0:34 - 0:36
    문자열을 확인해야 하니까 비밀 메시지의 길이만큼 for문이 반복되야
  • 0:36 - 0:41
    합니다. 우리가 읽을 문자열은 EncodedMessage 안에 있습니다. i를
  • 0:41 - 0:45
    1만큼 자동 증가를 하지 않고 10만큼 자동 증가하기로 하겠습니다. 그래야
  • 0:45 - 0:52
    10번째 문자를 읽어오기 때문입니다. 반복문 안으로 들어가서, 반복해야 할 부분은
  • 0:52 - 0:58
    i가 i번째 글자를 읽어오고 decodedMessage에 저장하는 것입니다.
  • 0:58 - 1:03
    그래서 decodedMessage는 decodedMessage + encodedMessage.substring(i, i+1)이
  • 1:03 - 1:09
    됩니다. 이렇게 해야 한 문자열 안의 한 글자만 가져올 수 있다는 것을 기억하세요.
  • 1:09 - 1:13
    실행해보니 비밀 메시지가 더 있습니다. 뭔지 궁금하시면
  • 1:13 - 1:15
    다른 인덱스로부터 시작을 해야 알 수 있을 것 같습니다.
  • 1:15 - 1:19
    하지만 지금은 잠시 오류에 대해서 설명해 보도록 하겠습니다.
  • 1:19 - 1:24
    이와 같이 여기에 <나 <=를 이렇게 작성했다면,
  • 1:24 - 1:29
    '문자열 범위 이탈'이라는 예외 처리가 뜰 겁니다.
  • 1:29 - 1:34
    너무 높은 인덱스를 enocdedMessage 안에서 가리키면, 문자열 범위 이탈
  • 1:34 - 1:38
    예외 처리가 일어나서 실행시간 오류가 됩니다. 실행시간 오류가 좋은 점은,
  • 1:38 - 1:42
    프로그램에 여러분에게 오류가 뭔지 알려주기 때문입니다.
  • 1:42 - 1:47
    아무것도 모른채 자신의 프로그램을 이상하게 바꾸는 것 보다 훨씬 더 좋은 것 같습니다.
  • 1:47 - 1:51
    하지만 이 문제를 enocdedMessage.length() -1을 넣으면서
  • 1:51 - 1:56
    해결을 할수도 있습니다. 실행은 잘 되지만, 제가 생각할 때는
  • 1:56 - 2:01
    깔끔해 보이지 않습니다. 문자열을 이용해서 반복할 때는, i를 길게 하고
  • 2:01 - 2:05
    length를 짧게 하는 것이 좋습니다.
Title:
11-41 We Have Intercepted A Secret Message
Description:

more » « less
Video Language:
English
Team:
Udacity
Project:
cs046: Intro to Programming
Duration:
02:05

Korean subtitles

Revisions