[解決済み】スレッド "main "での例外 java.util.NoSuchElementException
質問
これを実行すると必ず
chooseCave()
関数で問題なく動作します。
in.nextInt()
. 洞窟を選ぶと、2秒間隔でメッセージがポップアップし、その部分を過ぎるとすぐにエラーが出ます。
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at Dragon.main(Dragon.java:81)
私が試したのは
hasNextLine()
と
hasNextInt()
を使用する場合、そして
{コード
の中で
while hasNextLine()
メソッドを使用すると、さらに大量のエラーが発生します。私が
{コード
の中で
main
メソッドを呼び出すと、私の入力を受け付けないのです。
を使用した場合
while hasNextInt()
の中で
chooseCave()
メソッドへの私の入力を受け付けないのです。
if hasNextInt()
の文字列が表示され、そのまま別のゲームに入るのですが、その後
chooseCave()
playAgain
hasNextInt()
false
import java.util.Scanner;
public class Dragon {
public static void displayIntro() {
System.out.println("You are in a land full of dragons. In front of you, ");
System.out.println("You see two caves. In one cave, the dragon is friendly");
System.out.println("and will share his treasure with you. The other dragon");
System.out.println("is greedy and hungry, and will eat you on sight");
System.out.println(' ');
}
public static int chooseCave() {
Scanner in = new Scanner(System.in);
int cave = 0;
while (cave != 1 && cave != 2) {
System.out.println("Which cave will you go into? (1 or 2)");
cave = in.nextInt();
}
in.close();
return cave;
}
public static void checkCave(int chosenCave) {
System.out.println("You approach the cave...");
try
{
// Sleep at least n milliseconds.
// 1 millisecond = 1/1000 of a second.
Thread.sleep( 2000 );
}
catch ( InterruptedException e )
{
System.out.println( "awakened prematurely" );
}
System.out.println("It is dark and spooky...");
try
{
// Sleep at least n milliseconds.
// 1 millisecond = 1/1000 of a second.
Thread.sleep( 2000 );
}
catch ( InterruptedException e )
{
System.out.println( "awakened prematurely" );
}
System.out.println("A large dragon jumps out in front of you! He opens his jaws and...");
try
{
// Sleep at least n milliseconds.
// 1 millisecond = 1/1000 of a second.
Thread.sleep( 2000 );
}
catch ( InterruptedException e )
{
System.out.println( "awakened prematurely" );
}
double friendlyCave = Math.ceil(Math.random() * 2);
if (chosenCave == friendlyCave) {
System.out.println("Gives you his treasure!");
}
else {
System.out.println("Gobbles you down in one bite!");
}
}
public static void main(String[] args) {
Scanner inner = new Scanner(System.in);
String playAgain = "yes";
boolean play = true;
while (play) {
displayIntro();
int caveNumber = chooseCave();
checkCave(caveNumber);
System.out.println("Do you want to play again? (yes or no)");
playAgain = inner.nextLine();
if (playAgain == "yes") {
play = true;
}
else {
play = false;
}
}
inner.close();
}
}
Scanner
.
脇を固める。
すでに述べたように、以下のことに注意してください。
{コード
は改行文字を消費しません。を呼ぼうとする前に、改行文字が消費されていることを確認してください。
InputStream
Scanner
関連
-
[解決済み】Hibernateエラー:同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられました。
-
[解決済み】文字列中の � を置換する方法
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み] Javaにおける "implements Runnable "と "extends Thread "の違いについて
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] Pythonで例外を表示するには?
-
[解決済み] Pythonの関数が例外を投げるかどうかをテストするにはどうすればよいですか?
-
[解決済み] pythonの例外メッセージのキャプチャ
-
[解決済み】プログラムを停止/終了させることなく、完全な例外トレースバックをキャッチして表示する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Android java.lang.IllegalStateException: Android java.lang.IllegalStateException: Could not execute method of the activity
-
[解決済み】不正なエスケープ文字"㊧"について
-
[解決済み】Javaクラスの "型に解決できない"
-
[解決済み】Javaで無限大を実装する方法とは?
-
[解決済み】-XX:MaxPermSizeは何をするのですか?
-
[解決済み】Javaで文字列をコピーするにはどうしたらいいですか?
-
[解決済み】Javaのswitch文。定数式が必要だが、定数である
-
[解決済み] java.sql.SQLException を取得しました。ResultSet が終了した後の操作は許可されません。
-
[解決済み】Eclipseで「パッケージエクスプローラー」ビューが見つからない
-
[解決済み] SQLエラー。0, SQLState: 08S01 通信リンクの失敗 [重複]。