2016-09-28 117 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美元。

我的問題是我該如何阻止我的if語句,以便當p> a時它將停止輸出並說他已經死亡。在我的例子中的第12周,我希望它停止輸出並說他死了。

+0

它幾乎如果十二點當p終於比我想提出一個更大的突破,但我真的不能把不等式說當p最終通過停止輸出 – donortiz

+0

你真的應該解決您的壓痕。 – Zarwan

+0

對不起,我剛開始使用java和這個網站.. – donortiz

回答

0

由於(死亡1> =計數器)條件在while條件中得到驗證,所以它對於第二個if語句是冗餘的。另外,兩個If語句是相互排斥的,所以你可以使用if和else條件語句,這樣一個語句只被驗證一次,並且相對較快/可讀。

   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

在這裏沒有大量的信息要去;但通常情況下,如果要在條件滿足時停止循環,則可以使用循環或更改在while循環中檢查的布爾變量,從而防止循環再次循環。

+0

我明白但是在輸出時它擊中第12周(p> a),所以它開始輸出他死亡。在第12周這是我希望它輸出的唯一時間,因爲它第一次(p> a)是否有辦法在此之後停止輸出?我會在它之後加個休息嗎? – donortiz

+0

你想停止*全部*輸出,有效地結束程序?或者只有輸出說叔叔已經去世了? 如果您希望所有輸出都停止,break會帶您離開while循環,程序將結束。 –

+0

在12它會輸出他死,因爲我只想輸出時,p終於超過了。但在13我不希望它輸出任何東西 – donortiz