2017-02-01 5 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

また、ループに 'count 'を追加しています。私はあなたが 'for 'ループがどのように動作するかを調べる必要があると思います。また、 'while'も、' for'ループがどのように動作するかを理解すれば、無限ループに詰まらず、スキップすることができます。 –

答えて

1

あなたのコードは、この行で破壊され、実行が停止します

if (count == 1) 
    break; 

あなたが最初にforループで1にcountを設定しているので、あなたのif文は最初のループの反復で実行され、breakがあるさと呼ばれる。コードを削除または変更すると、期待どおりに機能するはずです。

+1

本当にありません。コードには無限ループもあります。 –

+0

@TiesonT。 - 十分に公正で、私は最初の論理で問題を指摘していました。ここではループを何かに再構築するための書き直しが有効でしょう。 – awh112

+0

ありがとうございました!私はそのコードを取り出して、今すぐ動作します。 –

関連する問題