構文解析中にファイルの終わりに移りました。

このQ&Aのポイント
  • Javaのコンパイルエラーの解読方法についてアドバイスをいただけますか?
  • モンスターのパワーを操作するプログラムのコンパイルエラーを解決したいです
  • モンスターのパワーを操作するためのコードを書いていますが、エラーが発生しています
回答を見る
  • ベストアンサー

構文解析中にファイルの終わりに移りました。

いつも大変お世話になりありがとうございます。 度々申し訳ございません。 コンパイルエラーが解読できません。 アドバイスのほど宜しくお願い申し上げます。 import java.util.*; class Monster { private int power; Monster(int p) { power = p; } class PlayWithMonster6 { public static void main(String[] args) { Monster m = new Monster(10); System.out.println("モンスターが生まれました"); Scanner sc = new Scanner(System.in); int ans, food; while(m.getPower() > 0) { System.out.println("\nモンスターのパワー:" + m.getPower()); System.out.println("どうしますか"); System.out.print("1 散歩させる 2 食べさせる 3 終了>"); ans = sc.nextInt(); if(ans == 1) { m.walk(); } else if( ans == 2) { System.out.println("食べさせる量を入力してください"); System.out.print("整数入力>"); food = sc.nextInt(); m.eat(food); } else { System.out.println("終了します"); break; } } System.out.println("\nまた遊ぼうね"); } }

  • Java
  • 回答数13
  • ありがとう数11

質問者が選んだベストアンサー

  • ベストアンサー
回答No.12

>そのソースが掲載されているサイトに記述されてませんか? >class Monster >{ >private int power; >Monster(int p) { >power = p; >} ↑この「Monster」クラスに続きはないのでしょうか?

takakou7979
質問者

お礼

ご回答誠にありがとうございました。

その他の回答 (12)

  • wormhole
  • ベストアンサー率28% (1619/5653)
回答No.13

>「Monster」クラスに「getPower、walk、eat」メソッドを存在させるには、 >どうすればいいでしょうか? 作ってあげてください。 作り方は入門書等に載っているはずです。

takakou7979
質問者

お礼

ご回答誠にありがとうございました。

回答No.11

>回答No.10 amanojaku1 ちなみに下記サイトにメソッドの文法が解説されてます。 【Java入門】メソッドの使い方総まとめ(呼び出し、引数、戻り値) https://www.sejuku.net/blog/26339

takakou7979
質問者

お礼

ご回答誠にありがとうございました。

回答No.10

>「Monster」クラスに「getPower、walk、eat」メソッドを存在させるには、 >どうすればいいでしょうか? もしメソッドだけ作っても そのメソッドの機能が分からなければ意味がありません(無機能のメソッドを作っても意味がありません)。 そのソースが掲載されているサイトに記述されてませんか?

takakou7979
質問者

お礼

ご回答誠にありがとうございました。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.9

>ボクは、どうすれば「構文解析中にファイルの終わりに移りました。」というエラーメッセージが出なくなるか知りたいのです。 それは既に的確な回答が出ていますよ。 >>では7行目に「}」を足していますが、余計にエラーが増えるのです。 この「余計にエラーが増える」のは「構文解析中にファイルの終わりに移りました。」が解決して、回答No.4で指摘しているように「回答N0.2の指摘通りですが、}の不足を補っても他のエラーが出るかも知れません。」と警告したはずです。 >「Monster」クラスに「getPower、walk、eat」メソッドを存在させるには、どうすればいいでしょうか? 「getPower、walk、eat」はサブプログラムのようなものですから、メインプログラムの手助けになるものを作ることになります。 回答No.5、7で提示のURLにある「amanojaku@管理者」に教えて貰えば良いと思います。

takakou7979
質問者

お礼

ご回答誠にありがとうございました。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.8

>では7行目に「}」を足していますが、余計にエラーが増えるのです。 提示のURLには『「Monster」クラスに「getPower、walk、eat」メソッドが存在しません。』と言う記載がありますので丸写ししても正常にコンパイルできるコードではないと推測します。 回答No.5、6、7のamanojaku1さんと提示URLのamanojaku@管理人さんは同一人物でしょうか? もし、同一人でしたらサイトの規約に違反するかも知れませんね。 takakou7979さんは何をしたいのですか?

takakou7979
質問者

お礼

ご回答誠に有難うございます。 ボクは、どうすれば「構文解析中にファイルの終わりに移りました。」 というエラーメッセージが出なくなるか知りたいのです。

回答No.7

>7行目に「}」を足していますが、余計にエラーが増えるのです。 > >他にアドバイスの程、宜しくお願い申し上げます。 「Monster」クラスに「getPower、walk、eat」メソッドが存在しません。

takakou7979
質問者

お礼

ご回答誠に有難うございます。 「Monster」クラスに「getPower、walk、eat」メソッドを存在させるには、 どうすればいいでしょうか? 度々申し訳ありません。 教えてください。

回答No.6

>回答No.5 amanojaku1 「Monster」クラスが終了していません。 「{」と「}」の数を確認して下さい。 >class Monster >{ >private int power; >Monster(int p) { >power = p; >}

takakou7979
質問者

お礼

ご回答誠にありがとうございました。

回答No.5

>きちんと字下げして確認しましょう きちんと字下げ

takakou7979
質問者

お礼

ご回答誠に有難うございます。 7行目に「}」を足していますが、余計にエラーが増えるのです。 他にアドバイスの程、宜しくお願い申し上げます。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

>構文解析中にファイルの終わりに移りました。 >コンパイルエラーが解読できません。 回答N0.2の指摘通りですが、}の不足を補っても他のエラーが出るかも知れません。 あなた自身がコーディングしたものとは思えません。 元のコードと全文を丁寧に比較してみることをお薦めします。 何度も申し上げますが、あなたのPCを直接操作できる指導者に協力して貰わないと同じことの繰り返しになります。

takakou7979
質問者

お礼

ご回答誠にありがとうございました。

  • wormhole
  • ベストアンサー率28% (1619/5653)
回答No.3

>どの辺りを見直せばよいでしょうか? 全部です。

関連するQ&A

  • javaのfor文

    nの値の和を求めるのはこれ以外に書き方はありますか? import java.util.*; class SampleGoo{ public static void main(String args[]){ Scanner std = new Scanner(System.in); System.out.print("整数値:");int n = std.nextInt(); int ans = 0; for (int i = 1;i <= n;i++){ ans = ans + i; } System.out.println(Integer.toString(ans)); } }

  • javaのfor文

    nの値の和を求めるのはこれ以外に書き方はありますか? import java.util.*; class SampleGoo{ public static void main(String args[]){ Scanner std = new Scanner(System.in); System.out.print(\"整数値:\");int n = std.nextInt(); int ans = 0; for (int i = 1;i <= n;i++){ ans = ans + i; } System.out.println(Integer.toString(ans)); } }

  • 3つの値の中間値を求める

    import java.util.Scanner; //このコードをどう修正したらいいですか? class Sample7_3{ public static void main(String args[]){ Scanner std = new Scanner(System.in); System.out.print("整数a:");int a = std.nextInt(); System.out.print("整数b:");int b = std.nextInt(); System.out.print("整数c:");int c = std.nextInt(); int med = 0; if(a<b) else if(a<c)med = c; else if(b<c)med = b; System.out.println("中間値は"+med+"です。"); } }

  • dokojavaでシンボルerrorがでます。

    -------------------------------------isbn978-4-8443-3638-9 public class Main { public static void main(String[] args){ System.out.println("運勢"); int fortune = new java.util.Random() .nextInt(4) + l; if (fortune == 1) { System.out.println("大吉"); } else if (fortune == 2){ System.out.println("中吉"); } else if (fortune == 3){ System.out.println("吉"); } else{System.out.println("凶"); } } } ----------------------------------- int fortune = new java.util.Random() .nextInt(4) + l; ↑の最後の「l;」がみつかりませんとシンボルerrorになります。

  • java enum

    エラー内容 int cannot be dereferenced 何が原因でエラーになっているのですか? import java.util.*; enum light{ red,yellow,blue } class m1{ public static void main(String[] args){ int light; Scanner ss = new Scanner(System.in); System.out.println("整数値を入力 : "); int i = ss.nextInt(); if(i == light.red.ordinal()){ System.out.println("信号は赤色です"); } else if(i == light.yellow.ordinal()){ System.out.println("信号は黄色です"); } else if(i == light.blue.ordinal()){ System.out.println("信号は青色です"); } } }

  • java while文です。教えてください(__)

    public class mondai2{ //プログラム開始 public static void main(String args[]){ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int i; int ans=0; int seikai=0; for(i=0;i<5;i++){ try{ { Random ran = new Random(); int num1 = ran.nextInt(8)+1; int num2 = ran.nextInt(8)+1; ans = num1*num2; System.out.print("問題"+(i+1)+":"); System.out.print(num1 + "×" +num2 + "="); String s =in.readLine(); seikai = Integer.parseInt(s); if(seikai==ans){ System.out.println("正解"); }else{ System.out.println("不正解"); } } }catch(IOException e){ System.out.println("エラー"); } } } } このプログラムをwhile文か、do while文にして正解が出るまで問題が出続けるようにしたいんですけど、まったくわからなくて困っています>< 教えてください(+o+)

    • ベストアンサー
    • Java
  • 配列に値を入れて表示させたいが

    import java.util.*; class Sample{ public static void main(String args[]){ Scanner std = new Scanner(System.in); System.out.print("クラス数:"); int n = std.nextInt(); int[][]a = new int[n][]; System.out.print("1組の人数");    int m = std.nextInt(); for(int i=0;i<m;i++){ a[i] = std.nextInt(); //ここの部分でコンパイルエラー    System.out.println("(i+1)"+"組"+(i+1)+"番目の点数"+a[i]);   } } } 互換性のない型?と出ますなぜでしょう

    • ベストアンサー
    • Java
  • java 入力命令

    以下うまくどうさしません、教えてください。 public class Main { public static void main(String[] args){ System.out.println("名前"); String name = new java.util.Scanner(System.in) .nextLine(); System.out.println("年齢"); int age = new java.util.Scanner(System.in) .nextInt(); System.out.println (age + name); } }

  • javaの超初心者です。ご教授いただけたら幸いです。

    javaの超初心者です。ご教授いただけたら幸いです。 ある書籍を元にやっているのですが、演習に答えがなく、わからないためその問題をお願い致します。 2桁の整数値(10~99)を当てさせる数当てゲームを作成せよ。という問題です。 下記は少しやってみました。 import java.util.Random; import java.util.Scanner; class Kazuate99 { public static void main(String[] args) { Random rand = new Random(); Scanner stdIn = new Scanner(System.in);    int no = rand.nextInt(); ← ここがたぶん違う System.out.println("数当てゲーム開始!!"); System.out.println("10~99の数を当てて下さい。"); int x; // プレーヤが入力した数 do { System.out.print("いくつかな : "); x = stdIn.nextInt(); if (x > no) System.out.println("もっと小さな数だよ。"); else if (x < no) System.out.println("もっと大きな数だよ。"); } while (x != no ); System.out.println("正解です。"); } } 宜しくお願い致します。

    • ベストアンサー
    • Java
  • 何故ループがしてくれないんですか?

    口でいうよりもソースコード載せた方が早いので載せます import java.util.Scanner; class StudentsList2 { public static void main(String[] args){ System.out.println("学生番号(23,45,78,51,9)を入力してください>"); Scanner sc=new Scanner(System.in); StList list=new StList(); list.ID=new int[]{23,45,78,51,9}; list.name=new String[]{"荒川","神田","吉田","渡辺","木村"}; int key=Integer.parseInt(sc.next()); list.getName(key); } static class StList{ public String[] name; public int[] ID; void getName(int key){ for(int A=0; A<ID.length; A++){ if(key==ID[0]){ System.out.println(name[0]);break; }else{ if(key==ID[1]){ System.out.println(name[1]);break; }else{ if(key==ID[2]){ System.out.println(name[2]);break; }else{ if(key==ID[3]){ System.out.println(name[3]);break; }else{ if(key==ID[4]){ System.out.println(name[4]);break; } } } } } } } } } 例外処理もなくエラーもかえって来ないんですが一回しか学生名が出力しないです。 何故でしょうか? nameに入っている名前を出力しないといけないですよね。 「ここがおかしいよ」とかのアドバイスをお願いします

    • ベストアンサー
    • Java

専門家に質問してみよう