2016-06-20 3 views
1

개체 목록이 있으며 에 대해 A, B 및 C 세 줄마다 각각 개체가 필요합니다. 나는 이것을 시도하고있다. 그러나 그것은 계속해서 화면에 엉망진창이다 :데이터를 올바르게 표시하고 구성하려면 어떻게해야합니까?

for (int i = 0; i < MyListSize * 3; i++) 
{ 
    if (i % 3 == 0) 
     Console.Writeline("C"); // any display function 
    else if (i % 2 == 0) 
     Console.Writeline("B"); // any display function 
    else 
     Console.Writeline("A"); // any display function 

} 

나의 실수는 무엇일까요?

전류 출력 :

C A B C B A C A B C B A

예상 출력 :

A B C A B C A B C A B C 코드를 변경해야

+0

망각으로 떨어지기 전에 ... pick * one * language를 선택하십시오. – Will

+0

스팸 언어 태그는 무엇입니까? – NathanOliver

+1

0 % 3은 0입니다. 따라서 일치시킬 문자를 변경하거나 1에서 시작하십시오. – juharr

답변

5

:

for (int i = 0; i < MyListSize * 3; ++i) { 
    switch (i % 3) { 
     case 0: 
      Console.Writeline("A"); // any display function 
      break; 
     case 1: 
      Console.Writeline("B"); // any display function 
      break; 
     case 2: 
      Console.Writeline("C"); // any display function 
      break; 
    } 
} 
+0

이것은 작동하지 않았습니다. "B A C B A C B A C B A C"가 표시되고'switch()'를 사용할 수없고 C++가 아닌 다른 언어로 된 경우 어떻게해야합니까? –

+2

@ 노프 : 코드가 정확합니다. 결과를 얻지 못했다면 잘못된 결과를 보였습니다. 'switch'를 사용할 수 없다면, 언어가 제공하는 것을 사용하십시오. 모든 언어는 최소한 조건문/기능을 제공합니다. 이것은 튜토리얼 사이트가 아니며, 스스로 추상화 작업을해야합니다. – Olaf

+0

출력이 A B C A B C A ... if 문으로 switch 문을 변경할 수 있습니다. – chema989

0

이것은 ++ C# 및 C 작동한다 :

for (int i = 0; i < YourListSize * 3; i++) 
{ 
    if (i % 3 == 0) 
     cout << "A"; // or Console.Writeline() 
    if (i % 3 == 1) 
     cout << "B"; 
    if (i % 3 == 2) 
     cout << "C"; 
} 
0

UPD합니다. @juharr이 말했듯이 for 루프는 0과 0(mod 3) = 0으로 시작하므로 시퀀스는 C으로 시작합니다. 그냥와 for 라인 교체 :

for (int i = 1; i <= MyListSize; i++) 

을 ... 또는 당신은 당신이 마법 예측 있지만 해결책이있을 수 있습니다 원하는 명확 사항을 알려주십시오 때까지 당신에게 ifs


을 수정. 이와 같이 :

var s = string.Join(Environment.NewLine, "A", "B", "C"); 
for (int i = 0; i < MyListSize; i++) 
{ 
    Console.Writeline(s); 
} 
관련 문제