2016-04-02 31 views
0

我被要求獲取用戶輸入的成員資格類型。獲取用戶輸入並在java中更改它

成員資格爲金/銀/銅牌。

Gold membership = 750 
Silver membership = 450 
Bronze membership = 250 

的下一步是詢問用戶是否他需要雪地輪胎租賃,如果是的話它是一個額外的10%,但我被困在這一點上,有沒有辦法讓會員輸入的結果由用戶並使用if語句來確定是否添加10%。

這是我迄今的代碼。

import java.io.*; 
public class SkiLodge { 

    public static void main(String[] args) throws Exception 
    { 

     InputStreamReader ui = new InputStreamReader (System.in); 
     BufferedReader gd = new BufferedReader(ui); 
     BufferedReader sr = new BufferedReader(ui); 
     BufferedReader bz = new BufferedReader(ui); 

     System.out.println("Select Membership Type: (Gold/Silver/Bronze"); 
     String membership = gd.readLine(); 

     double x; 

     if (membership.equals("Gold")) 
      System.out.println("Gold Membership Selected: £" + (x = 750)); 
     else if (membership.equals("Silver")) 
      System.out.println("Silver Membership Selected: £" + (x = 450)); 
     else if (membership.equals("Bronze")) 
      System.out.println("Bronze Membership Selected: £" + (x = 250)); 
     else System.out.println("Invalid Membership"); 



     System.out.println("Do you require snow tyre rental? (yes/no)"); 
     String tyreRental = sr.readLine(); 


     if (tyreRental.equals("yes")) 
      System.out.println(x = x * 1.1); 

    } 

} 

回答

1

您應該只創建一個Reader並使用它來讀取所有輸入。由於它們都來自System.in,所以您的輸入將在所有讀者中進行。例如,「黃金/白銀/青銅」的輸入將在您的BufferedReader的每個人的輸入中,因此當您閱讀String tyreRental = sr.readLine();時,您將再次閱讀「黃金/白銀/青銅」輸入。

這應該爲你更好的工作:

import java.io.*; 
public class SkiLodge { 

    public static void main(String[] args) throws Exception 
    { 

     InputStreamReader ui = new InputStreamReader (System.in); 
     BufferedReader inputReader = new BufferedReader(ui); 

     System.out.println("Select Membership Type: (Gold/Silver/Bronze"); 
     String membership = inputReader.readLine(); 

     double x = 0.0d; 

     if (membership.equals("Gold")) 
      System.out.println("Gold Membership Selected: £" + (x = 750)); 
     else if (membership.equals("Silver")) 
      System.out.println("Silver Membership Selected: £" + (x = 450)); 
     else if (membership.equals("Bronze")) 
      System.out.println("Bronze Membership Selected: £" + (x = 250)); 
     else System.out.println("Invalid Membership"); 



     System.out.println("Do you require snow tyre rental? (yes/no)"); 
     String tyreRental = inputReader.readLine(); 


     if (tyreRental.equals("yes")) 
      System.out.println(x = x * 1.1); 

    } 

} 
+0

它仍然給出了同樣的錯誤「局部變量x可能尚未初始化」 –

+0

好吧,只是它初始化爲'0.0'你把它聲明。我會更新答案。 – gustf

+0

太棒了......現在正在工作 –

0

希望這有助於。 :)

import java.io.*; 
public class SkiLodge { 

public static void main(String[] args) throws Exception 
{ 

    InputStreamReader ui = new InputStreamReader (System.in); 
    BufferedReader gd = new BufferedReader(ui); 
    BufferedReader sr = new BufferedReader(ui); 
    BufferedReader bz = new BufferedReader(ui); 

    System.out.println("Select Membership Type: (Gold/Silver/Bronze"); 
    String membership = gd.readLine(); 

    double x = 0.0; 
    double a = 0.0; 
    if (membership.equals("Gold")) 
     System.out.println("Gold Membership Selected: £" + (x = 750)); 
    else if (membership.equals("Silver")) 
     System.out.println("Silver Membership Selected: £" + (x = 450)); 
    else if (membership.equals("Bronze")) 
     System.out.println("Bronze Membership Selected: £" + (x = 250)); 
    else System.out.println("Invalid Membership"); 


    System.out.println("Do you require snow tyre rental? (yes/no)"); 
    String tyreRental = sr.readLine(); 

    x = x * 1.1; 
    a = x; 
    if (tyreRental.equals("yes")) 
     System.out.println(a); 

} 
} 
相關問題