2011-06-29 19 views
0

は私が悩み抱えているコードです:私は、ユーザーの名前と、彼らがしたいラウンド数の値を取得するためにスキャナを使用する場合「シンボルを見つけることができません。変数の入力」というエラーここ

import java.util.*; 
public class Game { 
public static final int ROCK = 1; 
public static final int PAPER = 2; 
public static final int SCISSORS = 3; 

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    String name = intro(); 
    int numRounds = numRounds(name); 
    game(name, numRounds); 
} 

public static String intro() { 
    System.out.println("Welcome to Rock Paper Scissors. I, the computer, will be your opponent."); 
    System.out.print("Please type in your name and press return: "); 
    String name = input.nextLine(); 
    return name; 
} 

public static int numRounds(String name) { 
    System.out.println("Welcome " + name + "."); 
    System.out.println("All right " + name + ". How many games would you like to play?"); 
    System.out.print("Enter the number of rounds you want to play and press return: "); 
    int numRounds = input.nextInt(); 
    return numRounds; 
} 

を再生するように、私はエラーを取得します。私はちょうどmain関数で使用するためにこれらの値を返すしたい。

ご協力いただければ幸いです。

+0

'game'メソッドの実装はどこですか? –

答えて

2

あなたがそれをしたい二つの方法にはinput変数はありません - methhod引数として渡す:

public static String intro(Scanner input) { .. } 
public static int numRounds(String name, Scanner input) { .. } 

が...

String name = intro(input); 
int numRounds = numRounds(name, input); 

それとは別に、何game()はありませんメソッド - 定義します。

+0

私はゲームメソッドを持って、私はちょうどここにそれを投稿していないが、ありがとう! – Dennis

+0

ようこそ。受け入れられたようにあなたに最高の答えを記入してください – Bozho

0

私は少しさびたんだけど、私はこの行を考える:

String name = input.nextLine(); 

は変数inputを使用しようとしますが、それはその範囲ではありません:それはそれを「到達」することはできません、その初期化されていませんので、変数。

Scanner input = new Scanner(System.in); 

をまたはインスタンスpublic用としてそれを宣言することにより、input「グローバル」を作る:

のどちらかが、その関数でこれを置きます。

0

intro()numRounds()のメソッドは、参照できませんinputです。それを変数として渡してみてください。

0

inputmain()メソッドの中で宣言されているため、そのメソッドの外側には存在しません。 intro()にアクセスできるように、main()メソッドの外部にあるクラス変数として宣言する必要があります。