2011-10-17 66 views
0

我正在創建一個循環的java程序,它需要用戶輸入兩個點並找到點之間的距離,並在用戶輸入q時退出循環。現在我有它,所以當q輸入時退出,但現在我輸入數字時出現錯誤。當輸入q時退出一個循環

import java.util.Scanner; 

public class Bonus1 { 

    public static void main(String[] args) { 

     Scanner input = new Scanner(System.in); 

     while(true) { 
      System.out.print("Enter the x and y coordinates for point 1: "); 
      String x1 = input.nextLine(); 

      if (quit(x1)) 
       break; 

      double x1_d = Double.parseDouble(x1); 
      String y1 = input.nextLine(); 

      if (quit(y1)) 
       break; 

      double y1_d = Double.parseDouble(y1); 

      System.out.print("Enter the x and y coordinates for point 2: "); 
      String x2 = input.nextLine(); 

      if (quit(x2)) 
       break; 

      double x2_d = Double.parseDouble(x2); 

      String y2 = input.nextLine(); 
      if (quit(y2)) 
       break; 

      double y2_d = Double.parseDouble(y2); 
      double distance = Math.sqrt(((x2_d - x1_d) * 
             (x2_d - x1_d) + 
             (y2_d - y1_d)*(y2_d - y1_d))); 

      System.out.printf("The distance of the two points is: %.2f \n" , distance); 
     } 
    } // main() 

    public static boolean quit(String input) { 
     return input.equalsIgnoreCase("q"); 
    } 
} // Bonus1 
+0

這是功課嗎? – javamonkey79

+0

如果這是家庭作業問題的一部分,請標記爲這樣。此外,如果顯示錯誤信息和錯誤堆棧跟蹤,則更有可能爲您的問題得到正確答案。 – jswolf19

+0

請添加您收到的錯誤meesage。 – vishakvkt

回答

0

我想你最好使用input.nextDouble()而不是input.nextLine(),這樣就可以直接訪問雙變量,可以肯定這是一個不能使用Java程序及pthe printf語句和讓它打印或打印並檢查語法...

+0

該程序編譯罰款,但是當我輸入一個雙值我得到「線程異常」主「java.lang.NumberFomatException輸入刺」。它不會再讀取數字,但是當我輸入q時它確實退出了,但它對我仍然不好,而且這是作業。 –

相關問題