2015-10-05 35 views
1

當用戶輸入的寬度小於或等於0時,程序應該結束,並且不會提示用戶輸入長度,或輸出區域或邊界。我如何做到這一點,而不使用System.exit(0)?!?如何結束程序並停止提示用戶?

public static void main(String[] args) { 
    Scanner k = new Scanner (System.in); 
    System.out.print("Please Enter a Width: "); 
    double width = k.nextDouble(); 
    System.out.print("Please Enter a Length: "); 
    double length = k.nextDouble(); 
    double area = width * length; 
    System.out.println("The Area is: " + area); 
    double perimeter = 2 * (width + length); 
    System.out.println("The Perimeter is: " + perimeter); 

    if (width <=0) 
     System.out.println("The Width Must Be Greater Than 0"); 

    else if (length <=0) 
     System.out.println("The Length Must Be Greater Than 0"); 

    if (width == length) 
    System.out.println("The Shape is a Square"); 

    else if (width != length) 
    System.out.println("The Shape is a Rectangle");  
+3

您發佈的代碼表示你知道如何使用'if'語句。嘗試把你的提示放在一些。 – azurefrog

回答

1

您可以隨時與return

跳出的方法在您的情況:

... 
System.out.print("Please Enter a Width: "); 
double width = k.nextDouble(); 
if (width <= 0) 
    return; 
... 
1

更改條件語句,使代碼的其餘部分執行僅在寬度較大比0:

Scanner k = new Scanner (System.in); 
System.out.print("Please Enter a Width: "); 
double width = k.nextDouble(); 
if (width <=0) 
{ 
    System.out.println("The Width Must Be Greater Than 0"); 
} 
else 
{ 
    System.out.print("Please Enter a Length: "); 
    double length = k.nextDouble(); 
    double area = width * length; 
    System.out.println("The Area is: " + area); 
    double perimeter = 2 * (width + length); 
    System.out.println("The Perimeter is: " + perimeter); 
    if (length <=0) 
     System.out.println("The Length Must Be Greater Than 0"); 
    if (width == length) 
     System.out.println("The Shape is a Square"); 
    else if (width != length) 
     System.out.println("The Shape is a Rectangle"); 
} 
+0

這可能比我的回答'更清潔')+1 –

+0

此代碼不正確 - 邏輯必須位於提示用戶輸入的行之內,而不是之後。 – CubeJockey

+1

@Trobbins你的正確我沒有看足夠接近的代碼...希望這足以讓用戶繼續,雖然這是一個非常簡單的變化,使其工作。 – brso05

1

如果width小於零,該程序將退出並且不會提示用戶輸入length。我已經將該邏輯擴展爲length提示,因此如果length小於0,程序也會停止。

工作過brso05'的邏輯,我想出了以下建議:

Scanner k = new Scanner (System.in); 
System.out.print("Please Enter a Width: "); 
double width = k.nextDouble(); 

if (width <=0){ 
    System.out.println("The Width Must Be Greater Than 0"); 
} 
else{ 
    System.out.print("Please Enter a Length: "); 
    double length = k.nextDouble(); 

    if (length <=0){ 
     System.out.println("The Length Must Be Greater Than 0"); 
    } 
    else{ 
     double area = width * length; 
     System.out.println("The Area is: " + area); 
     ... 
    } 
} 
相關問題