none
루프 관련 질문 RRS feed

  • 질문

  • 안녕하세요.

    스트링 관련 코드를 짜다가 막히는 부분이 있어 질문을 드립니다.

    코드는 다음과 같습니다.

    const string s = "abc";
    string news = "";
                
    
    Console.WriteLine("How many?");
    long n = Convert.ToInt64(Console.ReadLine());
    
      for(int i=0;i<n;i++)
      {
         if (news.Length == 10)
           break;
         news += s;
         Console.WriteLine(news.Length);
      }
    
      Console.WriteLine(news);

    스트링형 변수를 2개 선언했습니다.(하나는 const를 줘서 변형되지 않게 했고 하나는 비어 있습니다)

    원하는 횟수를 입력하면 횟수만큼 const로 제한된 스트링 데이터를 비어있는 변수에 더해 줍니다.(for loop로) 

    루프가 돌아가는 중에 할당된 스트링의 길이가 10이 되면 루프를 빠져나와 해당 스트링을 화면에 뿌립니다.

    제가 기대하는 결과는;

    10을 입력하면, "abcabcabca"가 화면에 뿌려지는 겁니다.

    질문은 루프 중에 스트링의 길이를 체크하지 않고 그냥 넘어가 버리는데, 이를 체크하게 하는 방법이 뭘까 하는 것입니다. 

    여러분들의 조언을 기다립니다.


    • 편집됨 ohseihyung 2019년 11월 12일 화요일 오전 3:13
    2019년 11월 12일 화요일 오전 3:11

답변

  • 당연히 3글자씩 더해지니까 Length == 10이 될 일이 없는 것입니다.

    "news += s"를 "news += s[i % 3]"로 바꿔서 한 글자씩 더해지도록 해야 합니다.


    • 답변으로 표시됨 ohseihyung 2019년 11월 15일 금요일 오후 3:45
    2019년 11월 12일 화요일 오전 7:03