2012-12-03 50 views
1

我需要創建一個程序,它使用while來查找圓柱體的體積。如果用戶輸入高度的負值,我需要使用while循環。我的代碼如下所示:不使用If或Break就打開一個while循環

double sentinel=1, h=1, v=0, r, count=0; // declares all variables needed 
    final double PI=3.14159; 
    boolean NotNegative=true; 

while(NotNegative){// && count==0){ // while both the height is positive AND the total times run is 0 
     System.out.print("Enter height (Use negative to exit): "); // has the user input the height 
     h=Double.parseDouble(br.readLine()); 
     sentinel=h; // save sentinel as the inputted height 

     while(sentinel>0){ 

      System.out.print("Enter radius: "); // have the user input the radius 
      r=Double.parseDouble(br.readLine()); 
      v=PI*(r*r)*h; // find the volume 
      System.out.println("The volume is " + v); // print out the volume 
      count++; // increase the count each time this runs 
      NotNegative=true; 
      sentinel=-1; 
     } 
    } 

任何幫助?

+3

爲什麼你不想休息或如果? –

+5

'Math.PI'太準確了嗎? ;) –

回答

2

你可以拋出一個你捕獲並忽略的異常。這是個壞主意,因爲

  • 如果和/或中斷更有效和更簡單。
  • 很慢
  • 這很混亂。

但是,由於您正在使用while循環,就像使用if break & break一樣,您可以執行以下操作。

NotNegative = h >= 0; 
0

在讀取輸入之後,在while(NotNegative){的內部添加以下代碼。

NotNegative = h >= 0;