2016-09-28 109 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