2017-02-01 3 views
-3

영수증 프로그램을 만들기 위해 C#을 사용하고 있습니다. 카운터를 제외하고는 제대로 작동합니다. 번호는 휴식 시간의 숫자로 유지되며 증가하지 않습니다. 숫자를 변경하려고했지만 작동하지 않는 것 같습니다.내 카운터가 C#을 증가시키지 않습니다.

 decimal count; 
     decimal price; 
     decimal subtotal; 
     decimal tax; 
     decimal total; 

     subtotal = 0; 
     count = 0; 

     for (count = 1; count <= 10; ++count) 
     { 
      if (count == 1) 
       break; 
      count = count + 1; 
     } 

     while (count <=10) 
     { 
      Console.Write("Item{0}", count); 
      Console.Write("  Enter price:$ "); 
      price = Convert.ToInt32(Console.ReadLine()); 
      if (price == -1) 
       break; 
      subtotal = price + subtotal; 

     } 

     Console.WriteLine("\nNumber of Items:{0}", count); 

     } 
    } 
} 
+0

'break' 키워드의 개념을 이해하고 있습니까? [some doc] (https://msdn.microsoft.com/en-us/library/adbctzc4.aspx) –

+0

코드를 디버깅하기 만하면 문제가있는 곳을 쉽게 알 수 있습니다. –

+0

그리고 루프에 '카운트'가 증가하고 있습니다. 나는 당신이'for '루프가 어떻게 동작 하는지를 찾을 필요가 있다고 생각한다. 'while' 루프가 작동하는 방법을 알아 내면 무한 루프에 갇히게 될 것입니다. –

답변

1

귀하의 코드는이 라인 및 실행에 위반되는 것은 중지 :

처음에 for 루프에서 1 count 설정 때문에
if (count == 1) 
    break; 

, 당신의 if 문이 첫 번째 루프 반복에서 실행되고 break입니다 라는. 코드를 제거하거나 수정하면 예상대로 작동합니다.

+1

아닙니다. 코드에는 무한 루프가 그대로 존재합니다. –

+0

@TiesonT. - 충분히 공정한, 나는 단지 초기 논리와 함께 문제를 지적했다. 다시 작성하면 루프를 좀 더 효과적으로 재구성하는 데 좋은 아이디어 일 것입니다. – awh112

+0

감사합니다! 그 코드를 꺼내서 지금 작동합니다. –