2016-12-11 13 views
0

これはなぜ動作しないのかわかりません。メソッドを呼び出すシンボルを見つけることができません

私はルーレットと呼ばれるゲームを作っており、ユーザーにスタートバランスを選択させたいと思っています。彼らはゲームを開いた後、ウェルカムメッセージを作成し、プレイ方法を教えます。その後、彼らが望むバランスを求める:

System.out.println("Welcome to Roulette! \nTo play please enter 1 to guess low (1-18) or 2 to guess high (19-36)"); 
userBalance = rps.getBalance(); 

だから、メソッド(または意志)の全体の束を持つ別のファイルへのアクセス権を持っている私のドライバクラスに何です。

私は今これをrpsと呼ばれる他のクラスに呼びます。

public int getBalance(Scanner in, int userBalance) 
    { 
    System.out.println("How much money would you like to play with?"); 
    userBalance = in.nextInt(); 

    while(userBalance > 0) 
    { 
     System.out.println("Invalid input, try again!"); 
     userBalance = in.nextInt(); 
    } 

    return userBalance; 
    } //end of UserBalance 

それはシンボル.getBalance

答えて

0

を見つけることができない私です知らせるあなたのgetBalance機能は、2つのパラメータ、scanner対象とintuserBalanceを取っているが、この機能userBalance = rps.getBalance();を呼び出している間、あなたは、任意のパラメータを渡していません。ファンクションプロトタイプpublic int getBalance(Scanner in, int userBalance)からこれらのパラメータを削除するか、必要なパラメータをこの関数に渡して呼び出します。

getBalanceの機能を変更する必要があります。 userBalanceを返すので、パラメータとしてgetBalanceの値を渡す必要はありません。また、パラメータとしてScannerオブジェクトを渡す必要はありません。関数本体内にscannerオブジェクトを宣言することができます。

次のコードを試してください。

public int getBalance() 
    { 
    Scanner in= new Scanner (System.in); 
    int userBalance; 
    System.out.println("How much money would you like to play with?"); 
    userBalance = in.nextInt(); 

    while(userBalance > 0) 
    { 
     System.out.println("Invalid input, try again!"); 
     userBalance = in.nextInt(); 
    } 

    return userBalance; 
    } //end of UserBalance 

この関数を呼び出すと、intの値が返されます。

int userBalance = rps.getBalance(); 
+0

ドライバクラスの開始残高0のように宣言したい場合は、私はパラメータを渡す必要があります。だからrps.getBalance(Scanner in、int userBalance)で – ForgedFire

+0

が正しく 'getBalance'関数を呼び出している間は、この関数が入力として受け取っているパラメータを渡す必要があります。あなたの関数では、 'scanner'オブジェクトと' int'値を渡す必要があります。 – Yousaf

+0

私はちょうど(in、userBalance)それは動作しますが、まだシンボルを見つけることができない取得します。 – ForgedFire

関連する問題