인프런 커뮤니티 질문&답변

principle950님의 프로필 이미지

작성한 질문수

C# 입문부터 안드로이드, 윈도우 앱(UWP) 동시에 만들기 Xamarin Forms(자마린 폼즈) + Maui(마우이)

안녕하세요 Ch2강의 치환 표시자 부분이 이해가 가지 않습니다.

해결된 질문

21.11.01 17:12 작성

·

130

3

안녕하세요 C언어라는 것을 처음 접해보아서 그런지 이해가 가지 않네요..
저는 강의를 들으면서

Console.WriteLine("안녕하세요. {0}님.", Console.ReadLine());

이 부분의 코드까지는 이해가 되었는데,

Console.WriteLine("안녕하세요. {0}님 {1}.", Console.ReadLine(), "어서오세요");

여기서 부터 이해가 가지 않습니다.

Console.WriteLine("안녕하세요. {0}님.", Console.ReadLine());
Console.WriteLine("안녕하세요. {1}님.", Console.ReadLine(), "어서오세요");
이라고 치면 될 것같은데, 왜 다시 0님하고 바로 뒤에 1을 입력해주는걸까요ㅠ
확실히 아래와 같이 고쳐서 한번 쳐보니까(홍길동 0 치고, 홍길동 1침)

안녕하세요 홍길동0님.
안녕하세요 어서오세요님.

이렇게 출력되어버리더라구요.

제 생각은
홍길동0을 친다 > {0}이 치환된다.
홍길동1을 친다> {1}이 치환된다.
이거였거든요

그래서 제가 이번에는
Console.WriteLine("안녕하세요. {0}님.", Console.ReadLine());
Console.WriteLine("안녕하세요. {0}님.", Console.ReadLine(), "어서오세요");
라고 치니까
안녕하세요. 홍길동0님.
안녕하세요. 홍길동1님.
이렇게 출력되더라구요(이번에는 어서오세요가 출력되지 않음)
 
{1}이 저 위치여야 하는 이유도 모르겠어요 {0}바로 뒤에 있어야 할 것같은데, 그렇게 고치니까
안녕하세요. 홍길동0님
안녕하세요 홍길동01어서오세요님
이런식으로 출력되어버리구

{1}을 어서오세요 뒤로 옮기니까
안녕하세요. 홍길동0님
안녕하세요. 홍길동1님
이런식으로 어서오세요가 또 사라져버리더라구요

코드가 어떤 방식으로 치환되는지, 알려주실 수 있으실까요??

구글검색을 해봐도 이게 문자열 보간?? 이라는 건 알았는데 잘 설명해주는 곳이 없네요..

--------

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

답변 1

2

깊알못nodeep님의 프로필 이미지
깊알못nodeep
지식공유자

2021. 11. 02. 08:14

안녕하세요.

 

그림을 보시면 먼저 자리 잡은 첫번째 Console.ReadLine()가 0번입니다.

가장 작은 숫자는 0이기 때문에 0부터 시작을 합니다.

그래서 Console.ReadLine()으로 입력 받은 값이 {0}으로 치환됩니다.

그럼 3번째를 보면 {0}은 없고 {1},{2}만 있습니다.

0부터 시작을 하기 때문에 세번째 출력은 Console.ReadLine()즉 0번은 치환할 곳이 없어서

무시 되고 {1},{2}만 치환이 됩니다.

 

글로 잘 설명이 되었을지 모르겠지만

시간이 되는데로 영상으로도 답변을 드려보겠습니다.

마지막까지 화이팅입니다~!

 

 

principle950님의 프로필 이미지
principle950
질문자

2021. 11. 02. 09:40

와.. 완전히 이해가 되었어요!!!
빠르고 자세한 답변 감사드립니다!!ㅎㅎ
막막했는데 빛이 보이면서 이해가 확되네여
제가 쳤을때 왜 그렇게 나왔는지도 알 것 같습니다!!ㅎㅎ