1

単純なコードに問題があります。この問題はどこでも見られますが、私と一緒に動作する修正が見つからないようです.3週間前にJavaを学び始めました.

これは、コンパイルして実行した後の私のエラーです

$java -Xmx512M -Xms64M RolePlayingGame
Name your adventurer.
Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:907)
    at java.util.Scanner.next(Scanner.java:1416)
    at RolePlayingGame.main(RolePlayingGame.java:11)

そして、これが私のコードです。これは緊急ではありません。おそらく近いうちにクラスで学ぶことになるでしょうが、それでも知りたいです。これが私の少量のコードです。

import java.util.Scanner;
public class RolePlayingGame
{
    public static void main (String [] args)
    {
    Scanner keyboard = new Scanner (System.in);
    int EnemyHack, EnemySlash, EnemyStab, EnemyBlock, Hack, Slash, Stab, Block, Potion, Health, EnemyHealth, EnemyHealth2, EnemyHealth3, EnemyHealth4, EnemyHealth5, Level;
    String Hack2, Slash2, Stab2, Block2, Potion2, Name;

    Level = 1;
    Health = 20+(Level*5);

    System.out.println("Name your adventurer.");
    Name = keyboard.next();
    System.out.println("Your name is " + Name + " .");


    System.out.println("You're passing through a murky forest.");
    System.out.println("You've been travelling many days. And you are tired.");
    System.out.println("There has been a heavy fog for the past week and it");
    System.out.println("has begun to grate on your nerves. Recently however,");
    System.out.println("you've noticed the fog lessening. As the fog lessens");
    System.out.println("you begin to notice shapes, you slowly draw your sword.");
    System.out.println("As you pass through the fog a demon lunges at you.");
    System.out.println("You let forth a battlecry and begin to fight.");
    System.out.println("The enemies health is " + EnemyHealth + " whereas yours is " + Health + " . Do you want to flee?");




    }
}

Level と Health を追加した後、コンパイル中に新しいエラーが発生し始めました。私が使用していたサイトだった可能性があります (オンライン コンパイラを使用していたため、エラーが発生し始めてから約 1 分後にサイトがダウンしました)。

4

1 に答える 1

3

エラーはここにあります: Name = keyboard.next();

使用する必要があります Name = keyboard.nextLine();

java.util.Scanner.next() メソッドは、このスキャナーから次の完全なトークンを見つけて返します。完全なトークンの前後には、区切り文字パターン (デフォルトでは空白) に一致する入力が続きます。

Scanner クラスのドキュメントをご覧ください。

Java 命名規則も参照してください。

于 2013-09-04T17:41:53.110 に答える