0

私はJavaが初めてで、本質的に文字でグリッドを実装しようとしています。ユーザーが「w」「a」「s」または「d」を入力すると、文字は平面内で上下左右に移動します。

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

そして、for ループを使用して、10x10 グリッドに「*」を出力しました。ただし、grid[a][b] は文字「A」と同じです。つまり、移動する必要があります。

それは問題なく動作するように見えたので、ユーザーからの「wasd」入力を検出する必要があったため、次のように設定しました。

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

そして、私は次のことをしました:

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

しかし、私はこれを機能させることができませんでした.「switch」ステートメントを完了しなかったからではありません.

私が見逃しているのは信じられないほど簡単だと思います。指摘していただけますか?

4

2 に答える 2

0

あなたのコードを見て、あなたがそれがうまくいかないと言っているのは、いくつかの入力が無視されるということですか?

私は次のようにコードを書きます:

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

もちろん、これは ASCII 文字のみを入力していることを前提としています。

于 2012-04-06T12:30:36.650 に答える
0

s の値をテストします。

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

}

次に、スイッチは 'char' で OK です。

于 2012-04-06T12:16:49.680 に答える