Java ```### 前提・実現したいこと for文の最初の所ですが、nextInt()を使用して整数値を入力したいです ここに質問の内容を詳しく書いてください。 NoSuchElementExceptionが発生します、例外発生せずにプログラムを動かしたいです。 ### 発生している問題・エラーメッセージ NoSuchElementException
エラーメッセージ
NoSuchElementException
該当のソースコード
package quest;
import java.util.Scanner;
public class BattleSystem {
public void battle(Hero hero,Monster monster) {
int turnFlag=1;
int selectAttack=0;
int damage;
if(hero.getSpeed()<monster.getSpeed()) {
turnFlag=2;
}
for(;;) { switch(turnFlag){ case 1: Scanner sc = new Scanner(System.in); System.out.print("攻撃手段を選択して下さい(1:殴る 2:必殺技):"); selectAttack = sc.nextInt(); sc.close(); switch(selectAttack){ case 1: turnFlag=hero.attack(hero, monster, turnFlag); break; case 2: turnFlag=hero.specialAttack(hero, monster, turnFlag); break; } case 2: System.out.println(monster.getName()+"の攻撃!!"); if(monster.getPower()<hero.getDiffance()){ damage=10; hero.setHp(hero.getHp()-damage); System.out.println(hero.getName()+"は"+damage+"のダメージを受けた"); turnFlag=1; }else{ damage=monster.getPower()-hero.getDiffance(); hero.setHp(hero.getHp()-damage); System.out.println(hero.getName()+"は"+damage+"のダメージを受けた"); turnFlag=1; } hero.printData(); break; } if(hero.getHp()<=0||monster.getHp()<=0) { if(hero.getHp()<=0) { System.out.println(hero.getName()+"はやられてしまった"); System.out.println("=================================="); }else if(monster.getHp()<=0){ System.out.println(hero.getName()+"は"+monster.getName()+"を倒した"); System.out.println("=================================="); } break; } } }
}
Java
試したこと
ここに問題に対して試したことを記載してください。
ネットで調べたが、有効な手段を見つけられませんでした
補足情報(FW/ツールのバージョンなど)
Eclipse_2018-09
ここにより詳細な情報を記載してください。
回答2件