2017-06-07 20 views
0

所以我知道我的問題,但我似乎無法找出一種方法來解決它,我想要做的是在用戶提供他們優先使用的用戶名後,我想打印輸入旁邊的phoneNumber,然後問題I正在跑進這裏。如何在每個參數輸入方法後打印?

我會得到用戶輸入,

用戶名:電話號碼:那麼現在,他們可以輸入

相反,我要的是這樣的:

用戶名:輸入從方法的參數。 ....

電話號碼:同樣的事情上面

更新版本:

這是錯誤我得到的輸出提示輸入用戶名或電話號碼後

用戶名無法解析爲一個變量

public void createCustomer(String userName){ 


    System.out.print("Enter username: "); 
    this.user = input.nextLine(); 
    this.user = userName; 




    this.password = password; 
    this.address = address; 
    this.phoneNum = phoneNum; 
    this.email = email; 




    } 



    public static void main (String args[]){ 
    CustomerUI customer = new CustomerUI(); 
    Scanner input = new Scanner(System.in); 




    if(shouldCreate()== true){ 


    customer.createCustomer(userName); 

    } 
+0

您需要保存在本地變量輸入,然後通過那些方法以後。這樣你可以插入你想要的任何東西來獲得輸入和調用方法。 –

+0

是的,我認爲這是有道理的,謝謝你的確認。 –

回答

2

可以掃描每一行。例如:

Scanner scanner = new Scanner(System.in); 
System.out.println("Enter username: "); 
String username = scanner.nextLine(); 
System.out.println("Username: " + username); 

然後相同的電話號碼。然後,您可以將值傳遞給createCustomer方法:

customer.createCustomer(username, phoneNumber, otherVar, anotherVar, lastVar); 

編輯以解決更新後的代碼:您未在主方法中定義用戶名。如果我們仔細查看代碼,就會發生以下情況:

  • 我們在定義客戶(CustomerUI對象)和輸入(掃描器對象)的主要方法中輸入。
  • 如果shouldCreate()方法返回true,我們將使用customer.createCustomer(userName)創建客戶。然而,在這一點上,用戶名中有沒有蜜蜂的任何地方定義(如String userName;
  • 在createCustomer,我們打印出來的線"Enter username: "到控制檯
  • 我們那麼user類變量設置在控制檯中輸入線,起訴input.nextLine()。然而,在這一點上,我們沒有定義這種方法中定義的變量input。它在main中定義,但是作爲局部變量。因此,這種方法無法訪問。
  • 然後從userName方法參數中分配user類變量。這將覆蓋input.nextLine()值,使該行無用

我會建議:

  • Scanner input = new Scanner(System.in)行成createCustomer方法
  • 取出createCustomer方法的參數,而是分配來自input.nextLine()方法的值每次

或者:

  • 保持Scanner input = new Scanner(System.in)線的主要方法
  • 移動input.nextLine()方法調用到主法,以及局部變量
  • 分配其值傳遞這些變量的createCustomer方法然後可以分配這類變量
+0

它不起作用 –

+0

就像我會得到一個變量不解決。 –

+0

哪個變量沒有解決? – SelketDaly

0

程序中的指令幾乎總是按它們寫入的順序(至少在方法中)執行。

所以你要做的是先輸出問題,然後再調用輸入法。要改變這種情況,您需要重新排列說明。

問題是,您直接將輸入返回值傳遞給另一個方法。所以,你必須引進一些局部變量來存儲這些返回值,直到你將它們傳遞到下一個方法:

 System.out.print(""); 
    System.out.print("Username: "); 
    String userName =input.nextLine(); 
    System.out.print("PhoneNumber: "); 
    String phoneNumber =input.nextLine(); 
    customer.createCustomer(userName, phoneNumber, 
      input.nextLine(),input.nextLine(),input.nextInt());