2016-09-28 15 views
0
//Calculate the amount of money you will receive based on your option 

if (n == 0) { 

    while (death - 1 >= counter) { 

     System.out.format("Week %2d Linear: $%.2f Exponential: $%.2f\n", counter, a, p); 

     if ((death - 1 == counter) && (a >= p)) { 

      System.out.format("Your uncle dies in week %2d. But you were lucky and received an extra " + 
        "$%.2f dollars.\n", death, ((death * initial) - ((Math.pow(2, (death - 1))/100)))); 
     } 
     if ((p > a) && (death - 1 >= counter)) { 
      System.out.format("Your uncle dies in week %2d. But you were unlucky and missed an extra " + 
        "$%.2f dollars.\n", death, (p - a)); 
     } 
     a += initial; 
     counter++; 
     p = p * 2; 
    } 
} 

出力:を停止出力処理

週1リニア:$ 1.39指数:$ 0.01

週2リニア:$ 2.79指数:$ 0.02

週3リニア:$ 4.18指数:$ 0.04

第4週リニア:$ 5.58指数:$ 0.08

週5リニア:$ 6.97指数:$ 0.16

6週リニア:$ 8.36指数:$ 0.32

週7リニア:$ 9.76指数:$ 0.64

8週リニア:$ 11.15指数:$ 1.28

週9リニア:$ 12.55指数:$ 2.56

週10リニア:$ 13.94指数:$ 5.12

週11リニア:$ 15.34指数:$ 10.24

12週リニア:$ 16.73指数:$ 20.48

あなたの叔父は週31で死ぬしかし、あなたは不運だったし、余分な $ 3.75ドルを逃しました。

週13リニア:$ 18.12指数:$ 40.96

あなたの叔父は週31で死ぬしかし、あなたは不運だったし、余分な $ 22.84ドルを逃しました。

14週リニア:$ 19.52指数:$ 81.92

あなたの叔父は週31で死ぬしかし、あなたは不運だったし、余分な $ 62.40ドルを逃しました。

私の質問は、p> aのときに出力が止まり、彼が死亡したと言うようにif文を止めることができます。私の例では12週目に出力を止め、彼が死んだと言います。

+0

そのpがより最終的に大きいとき、ほとんどの場合12時、私は休憩を入れたいが、私は本当に、pがついに – donortiz

+0

を出力停止を通過したときにあなたが本当にあなたのインデントを修正する必要があると言って不平等を置くことはできません。 – Zarwan

+0

申し訳ありません私はちょうどjavaとこのサイトを使用し始めました.. – donortiz

答えて

0

while条件で(death-1> = counter)条件が有効になるため、2番目のif文で冗長性が有効になります。また、2つのIf文は相互に排他的です。したがって、if ... else条件文を使用すると、文は1回だけ検証され、比較的高速で可読です。

   if ((death - 1 == counter) && (a >= p)) { 
        System.out.format("Your uncle dies in week %2d. But you were lucky and received an extra " + 
          "$%.2f dollars.\n", death, ((death * initial) - ((Math.pow(2, (death - 1))/100)))); 
       }else if(p > a) { 
        System.out.format("Your uncle dies in week %2d. But you were unlucky and missed an extra " + 
          "$%.2f dollars.\n", death, (p - a)); 
        break; 
       } 
0

ここには数多くの情報はありません。条件が満たされたときにループを停止したい場合は、ループをbreakにするか、whileループでチェックされたブール変数を変更して、ループを再開しないようにすることができます。

+0

それは彼が死ぬことを出力し始めるようにそれは週12(p> a)を打つ。 12週目には、最初の時間(p> a)に出力を停止する方法があるので、出力する唯一の時間は?私はちょうどそれの後に休憩を追加しますか? – donortiz

+0

*すべての出力を停止して、効果的にプログラムを終了しますか?または、叔父が死亡したという出力だけ? すべての出力を停止したい場合は、whileループからブレークするとプログラムが終了します。 –

+0

12時には、pが最終的にaを上回ったときだけ出力したいので、彼は死んでしまいます。しかし13時には、何も出力したくないのです – donortiz

関連する問題