2012-04-06 4 views
0

私はJavaを使い慣れておらず、文字を含むグリッドを実装しようとしています。ユーザーが 'w' 'a'または 'd'を入力すると文字が上に移動します/ down/left/rightの範囲内にあります。Javaの多次元配列とスキャナの初心者Q

サイズ10x10の多次元配列を作成しました。 public static String [] [] grid = new String [10] [10];

そして、文字「A」、すなわち私のものを動かすことに等しいグリッド[a] [b]を除いて、10x10グリッドで「*」を印刷するためにforループを使用しました。

Scanner in = new Scanner (System.in); 
     while (in.hasNext()) 

そして、私はそれから持っていた:

String s = in.next(); 
char ch = s.charAt(0); 
switch (ch) 

けど大丈夫動作するように見え

は、その後、私は私が設定したユーザーから「WASD」入力を検出するために必要なこの作業をすることができませんでした。なぜなら、私は "switch"ステートメントを完了しなかったからではありませんでした。

私は信じられないほど簡単なわずかなことが私が逃していると確信しています、あなたは私のためにそれを指摘できますか?

+0

入力がないとすぐにポーリングループが終了するため、入力が悪いというアイデアであり、機能しません。 – bdares

+0

スイッチのコードも投稿する必要があります。基本的な質問ですが、それぞれのケースについてbreak文がありましたか? –

+0

'while(in.hasNext())'に 'String s = in.next();'だけでなくswitch文が含まれていることを確認してください。つまり、コード全体を2つの中かっこ 'while(in.hasNext()){/ * THE CODE * /}'で囲む必要があります。 –

答えて

0

テストsの値:

if(!s.isEmpty(){ // Java 6<br> 
// Your code 
..; 

}

次にスイッチが '文字' とOKです。

0

あなたのコードを見ると、あなたはそれがうまくいかないと言っていると推測しています。

私は次のようにコードを記述します。もちろん

while (in.hasNext()) { 
    char ch = (char)in.nextByte(); 
    switch(ch) 
    .... 
} 

を、これはあなただけのASCII文字を入力している前提としています。