2016-04-13 8 views
-3

私は学校プロジェクトに取り組んでおり、ユーザーが総売上を入力できるようにするC#プログラムを作成しようとしています。私は総売上高を取ると、次のようにprofitRatioことによってそれを計算する必要があります。ifステートメントを使用してC#で%を返します

totalSales      profitRatio 
0-$1,000:       3% 
$1,000.01-%5,000     3.5% 
$5,000.01-$10,000     4% 
Over 10,000       4.5% 

次のステップは、それが一致していること%カテゴリで総売上高を計算し、そのデータを保存することです。また、ユーザーに使用されている利益率%を新しい利益とともに表示したいと考えています。このように書かれていれば、 "if then then"文がこれを行うことになりますか?あなたの最後のブランチで

private decimal ReturnRatio() 
{ 
    if (totalSales > 0 && totalSales < 1000) 
    { 
     profitRatio = .03M; 
    } 
    else if (totalSales >= 1000.01 && totalSales < 5000) 
    { 
     profitRatio = .035M; 
    } 
    else if (totalSales >= 5000.01 && totalSales <= 10000) 
    { 
     profitRatio = .40M; 
    } 
    else if (totalSales < 10000) 
    { 
     profitRatio = .045M; 
    } 
} 
+2

"もしこのように書かれていれば、これを行うための文がありますか?"コードを実行し、あなた自身のために参照してください。それ以降に納得がいかない場合は、ブレークポイントを突き止めてデバッグして再度実行してください。 – Tdorno

+0

私の甘い夏の子供:)。そこでは3つの異なるデータ型を使用しています。すべての数字をM. – hoodaticus

+1

で終わらせるようにします。 'string.Format'関数の使い方を調べて、戻り値の型を'% 'で整形された値を持つ文字列に変更するか、現在のコードがあなたが 'return profitRatio'を持っていないのでエラーです。例えば' var dValue = string.Format( "{0:0.0%}"、.03M); 'あなたの場合は、文字列の.03MをprofitRatioで変更します。書式関数 'var dValue = string.Format(" {0:0.0%} "、profitRatio); ' – MethodMan

答えて

0

else if (totalSales < 10000)あなたは><= 0ある数字で可能になります。私は最後のブランチはelse if (totalSales > 10000)であるべきだと思います。

まあ、最後のブランチは、実際には、ユーザーが金額を入力することが許可されているので、他の金額を処理するelseステートメントでなければなりません。例:

else if (totalSales > 10000) 
{ 
    profitRatio = .045M; 
} 
else 
{ 
    Console.WriteLine("You entered an invalid amount."); 
} 
+0

私のタイプOを指摘していただきありがとうございます。ありがとうございました! –

0

もし、私があなたの先生だったら、私はもっと願っています。 MinのフィールドとMaxのフィールドを持つRangeクラスを作成し、各カテゴリを表すオブジェクトを作成することを検討する必要があります。

これらのRangeオブジェクトをListのようなコレクションに配置し、foreachループを実行して各Rangeオブジェクトを個別に処理します。

これがエンタープライズシステムのコードだった場合、これはいくつかの極端なパフォーマンスの項目ではホットループでない限り、私はあなたを狩ります。

+2

OPには 'if'文に関する疑問があり、エンタープライズにふさわしくないことを批判していますか?誰もがどこかで始まらなければならない - もしこのコードでこのような劇的な変更を行う魅力的な理由は見当たらない。 –

+1

あなたの提案hoodaticusありがとう、残念ながら、私はforeachステートメント "私はまだこれを学んでいない"とそれを正しく使用する方法についての十分な知識を持っていないので、私はこれを見ているプロセスです。あなたの提案の例を共有してもかまわないなら、私はそれを高く評価します。私はあなたの提案の良い基本的なアイデアを得るのに十分な、私のために全体の問題を解決するように求めていません。 –

+0

LOL @ D Stanley。あなたは、別の質問で受け取った綱引きのために、ただ動揺しています。 – hoodaticus

関連する問題