2016-10-15 34 views
-1

您好我是新來的Java和我的介紹類我有編程的東西,執行以下操作:定義與用戶輸入用戶輸出的問題,雖然聲明和一些數學計算。Java錯誤有一段時間,if語句

我想要做的是讓它提示用戶的腳和英寸的高度,如果它超過5'8他們不能去過山車;如果它是5'8或更少,他們可以。我意識到如果像其他類型的東西一樣,這會容易得多,但我需要使用while;我們還沒有覆蓋,所以我也不能使用它。我可能搞砸了,還有更好的方法來做到這一點,但這是我迄今爲止所做的。

import java.util.Scanner; 

public class coasterHeight 
{ 
    public static void main(String[] args) 
    { 


Scanner keyboard = new Scanner(System.in); 
int feet; 
int inches; 

System.out.println ("Your must be at least 5'8 to ride this ride."); 
System.out.println ("Please enter your height in feet:"); 

feet = keyboard.nextInt(); 
System.out.println ("Please enter your height in inches:"); 

inches = keyboard.nextInt(); 



while (feet <= 5 && inches <= 8) 
{ 
System.out.println("You can go on this ride."); 
break; 
} 


{ 
if (feet >= 6 && inches >=9) 

{ 
System.out.println ("You cannot go on this ride."); 
} 
} 
    } 


} 

所以問題就出在這裏。當輸入滿足,同時要求它工作正常(它曾經去與「你可以走在這搭」,但我發現斷裂無限循環),但對於if語句,沒有出現在輸出中。 「你不能坐這次騎行」,什麼也沒有出現,沒有任何錯誤或任何事情在我進入超過5'8的身高後結束輸出。就像我說的這可能是可怕的,但任何幫助將不勝感激,謝謝。

+1

什麼,如果你立刻打破循環的角度使用它? – Li357

+1

我認爲你錯過了這個問題的關鍵。您可能需要一個while循環,直到用戶退出才重複提問。這段代碼沒有理由拋出一個while循環。 –

回答

0

嘗試使用floatdouble代替,其中float height = 0.00double height = 0.0。 然後你可以在while的語句,如

while (height >= 5.8){ 
     System.out.println("You cannot enter the ride"); 
     break; 
    } 
    while (height < 5.8){ 
     System.out.println("You can enter the ride"); 
     break; 
    } 
+0

我之前嘗試過類似的東西,但感謝芽我明白,現在好多了。 – Ichise

+0

關於OP的註釋仍然適用 - 當沒有必要時,它使用兩個while循環。你可以用一個簡單的'if'來完成同樣的事情,因爲你不需要break –

1

因爲你希望你的程序不能正常工作的原因是因爲你的邏輯是不正確。仔細在你的條件

看看,想想不同的可能性,用戶可以進入。

feet <= 5 && inches <= 8

的經營&&意味着這兩個部分必須在同一時間是真實的,以便評估爲true的聲明。所以5英尺9英寸高的人會導致這種情況評估爲假。與feet >= 6 && inches >=9在別人誰是7尺1寸的身高會導致這種情況,以評估爲假時

同樣的問題。

而且,看來你有你的條件顛倒。在節目的頂部,你說有人必須至少有5英尺8英寸才能上車,但是你會檢查不到這一點,並讓他們繼續前進。

0

要僞代碼回答這個(你可以使用你已經有了填寫詳細信息):

while not valid input (not a number, is negative, etc.) 
    get height from user 

if height allowed on ride 
    say "ok" 
else 
    say "no dice" 

至於另一注:請注意feet <= 5 && inches <= 8true爲(例如)feet = 7inches = 1。我覺得他們應該被允許上車。