• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コンパイルできません。)

Javaプログラムのコンパイルエラーを修正する方法

このQ&Aのポイント
  • Javaのプログラムをコンパイルする際にエラーが発生しました。
  • コンパイルエラーの原因は、return文が指定されていないことです。
  • エラーが発生した箇所を修正し、プログラムを正しくコンパイルできるようにしてください。

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

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

推測で回答します(もう少しプログラムで何をしたいのか説明したほうが良いでしょう)。 下記プログラムは「main()」メソッドが存在するので、下記プログラムとパラメータだけで実行できます(パラメータがないとエラーになります)。 とりあえずパラメータは「1 2 3 4 5」としています。 【実行結果】 sum()=15.0 average()=3.0 max()=5.0 min()=1.0 hasElement()=true 【プログラム】 public class test17 { double[] ary; public static void main(String[] args){ double[] dargs = new double[args.length]; // 通常のfor文 for(int i = 0; i<args.length; i++){ dargs[i] = Double.parseDouble(args[i]); } test17 t = new test17(dargs); } /** *実数型の配列を引数にしたコンストラクタ */ public test17(double[] a){ ary = a; // ポインターを代入してるだけなので配列は1つしかない System.out.println("sum()="+sum()); System.out.println("average()="+average()); System.out.println("max()="+max()); System.out.println("min()="+min()); System.out.println("hasElement()="+hasElement(3.0)); //↑とりあえず「hasElement(~)」の引数に「3.0」を設定している } /** *要素の合計を求めるメソッド */ public double sum(){ double s = 0.0; // 拡張for文 for(double d : ary){ s += d; } return s; } /** *要素の平均を求めるメソッド */ public double average(){ return sum()/(double)ary.length; } /** *要素の最大値を求めるメソッド */ public double max(){ double m = -Double.MAX_VALUE; // 拡張for文 for(double d : ary){ if(m<d){m=d;} } return m; } /** *要素の最小値を求めるメソッド */ public double min(){ double m =Double.MAX_VALUE; // 拡張for文 for(double d : ary){ if(d<m){m=d;} } return m; } /** *値を要素に持っているかどうかを確認するメソッド */ public boolean hasElement(double d){ boolean b = false; // 拡張for文 for(double f : ary){ if(f==d){b = true; break;} } return b; } }

jump7799
質問者

お礼

ご回答誠に有難うございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (7)

回答No.8

多次元配列とは2次元以上の配列。 配列を棚で例えれれば、添付画像の向かって左が1次元配列、向かって右が2次元配列。

jump7799
質問者

お礼

ご回答誠に有難うございます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.7

1次元配列なら下記「Arrays.copyOf(~)」で「深い(Deep)」コピーになるようです。 ただし「Arrays.copyOf(~)」で多次元配列を指定すると「浅い(Shallow)」コピーになるようなので、多次元配列で「深い(Deep)」コピーする場合には工夫が必要。 String[] a1s1 = {"a","b","c",}; String[] a1s2; a1s2 = Arrays.copyOf(a1s1,a1s1.length);

jump7799
質問者

お礼

ご回答誠に有難うございます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.6

>回答No.2 amanojaku1 >ary = a; // ポインターを代入してるだけなので配列は1つしかない ↑ちなみに、このようにポインタだけをコピーしている場合を「Shallow Copy(シャロー・コピー)」と言います。 ちなみに、インスタンス自体を複製する場合を「Deep Copy(ディープ・コピー)」と言います。 とりあえず、参照型は「浅い(Shallow)」コピーと「深い(Deep)」コピーの2種類あると思って下さい。

jump7799
質問者

お礼

ご回答誠に有難うございます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.5

Javaのデータ型にはプリミティブ型とオブジェクト型があります。 オブジェクト型は参照型となっており、ポインタによりインスタンスが参照されています。 プリミティブ型は下記参照。 【Java】基本データ型(プリミティブ型)について https://okwave.jp/qa/q9530643.html >回答No.2 amanojaku1 >ary = a; // ポインターを代入してるだけなので配列は1つしかない Javaでは配列もオブジェクト型(参照型)です、ポインタにより配列インスタンスが参照されています。 「ary = a;」のように代入した場合、変数aポインタと変数aryポインタは1つの配列インスタンスを参照しています(添付画像の下方の画像の状態)。

jump7799
質問者

お礼

ご回答誠に有難うございます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

>回答No.3 amanojaku1 メソッドごとに何をしているのか考えて下さい。 とりあえず「main()」メソッドで何をしているのか考えて下さい。

jump7799
質問者

お礼

ご回答誠に有難うございます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

>回答No.2 amanojaku1 勉強したいならプログラムで何をしているのか考えて下さい。

jump7799
質問者

お礼

ご回答誠に有難うございます。

全文を見る
すると、全ての回答が全文表示されます。
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

>エラー5個 全て「return文が指定されていません」なのでエラーの行または直前の行へreturn文を追記すれば良いでしょう。 尚、41行目のreturnの値はtrueまたはfalseにする必要があるでしょう。 他は数値で良いと思います。 エラーメッセージを理解することも重要なことです。

jump7799
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • プログラムの合体。

    jump7799_4836さん 2018/7/2103:34:44 public class Test2 { public static int メソッド () { System.out.println("メソッド()が呼ばれました"); return 0; } public static int メソッド (int i) { System.out.println("メソッド(int i)が呼ばれました"); return i; } public static int メソッド (int i, int j) { System.out.println("メソッド(int i, int j)が呼ばれました"); return i; } public static int メソッド (short s) { System.out.println("メソッド(short s)が呼ばれました"); return s; } public static int メソッド (double d) { System.out.println("メソッド(double d)が呼ばれました"); return (int) d; } } public メソッド class Test2 { public メソッド static void main(String[] args) { Test2.メソッド (); Test2.メソッド (1); Test2.メソッド (1,2); Test2.メソッド (1.1); Test2.メソッド ((short) 1); Test2.メソッド ((double)1); } } kouzou@GD348ZZD9:/WORK$ javac Test2.java Test2.java:29: エラー: class、interfaceまたはenumがありません public メソッド class Test2 { ^ Test2.java:30: エラー: <identifier>がありません public メソッド static void main(String[] args) { ^ エラー2個 2つのプログラムが合体することってあるのですか? いつもすみません。 解説のほど、宜しくお願い申し上げます。

    • ベストアンサー
    • Java
  • エラー: ->がありません

    エラー: ->がありません と出てきます。 /** *値を要素にもっているかどうかを確認するメソッド */ public boolean hasElement(double d){ return (double ); どうか教えて下さい。

    • ベストアンサー
    • Java
  • クラスTest4を検出およびロードできませんでした

    import java.util.Arrays; public class Test4{ public static void main(String[] args){ int [] array = {298,827,8348,29,892,327,8,9,2,809,32}; System.out.println("配列の要素を表示します。"+ Arrays.toString(array)); System.out.println("Arraysクラスを利用しないと、" + array + "となってしまう"); } } kouzou@GD348ZZD9:/WORK$ java Test4 エラー: メイン・クラスTest4を検出およびロードできませんでした 原因: java.lang.ClassNotFoundException: Test4 コンパイルはできたのですが、実行でエラーが出ました。 何故でしょうか? 教えてください。 ご回答のほど宜しくお願い申し上げます。

    • ベストアンサー
    • Java
  • java コンパイルエラー

    java コンパイルエラー java 初心者です。 簡単なプログラムを作りながら練習していたのですが、Exceptionクラスを継承して新しい例外を作る以下のプログラムで、コンパイルエラーとなり、解決できません。 class NewException extends Exception{ public NewException(){ super("エラー"); } } これを javac でコンパイルすると、 NewException.java:3: シンボルを見つけられません。 シンボル: コンストラクタ Exception(java.lang.String) 場所  : Exception の クラス super("エラー"); ^ エラー1個 と言われます。 これを読むと「Exception には String を引数にとるコンストラクタはないよ」と言われているように思えるのですが、そんなはずないのでは。。 もし原因がお分かりの方がいらしたら、ご教示いただけるとありがたいです。

    • ベストアンサー
    • Java
  • コンパイル時の静的チェックについて

    次のような配列があります。 static const int ary[]={1,2,3,4,5}; この配列の要素数が5であることは、次の方法でコンパイル時にチェック出来ます。 #define ARRAYSIZE(a) (sizeof(a) / sizeof(*(a))) static_assert(ARRAYSIZE(ary) == 5); では、この配列で4以上の要素数が2であることをコンパイル時にチェックするにはどうしますか? 実行時であれば次のように出来ます。 assert(count_if(ary, ary+sizeof(ary), [](int i)->bool {return (i >= 4); }) == 2); 結果はコンパイル時に確定しているはずなのですが、この方法だとライブラリ関数を使用するので実行時にしかチェック出来ません。 「テスト用プロジェクトを作って...」というのも「コンパイル時に確認」ではないので無しとします。

  • 実行方法を教えて下さい。

    いつも教えていただき大変お世話になっております。 下記コードの実行方法を教えて頂きたいのです。 論理的に理解したいと思います。 大変恐れ入ります。 お手数ですが、解説もお願い致します。 冒頭の3行が普通と違うのです。 色々検索致しましたが、理解できません。 ご回答のほど宜しくお願い申し上げます。 package sample.sample10; import static java.util.Arrays.*; import java.util.Arrays; public class Sample10_11 { public static void main(String[] args) { int[] array = {298, 827, 8348, 29, 892, 327, 8, 9, 2, 809, 32}; System.out.println("配列の要素を表示します。" + Arrays.toString(array)); sort(array); System.out.println("配列の要素を表示します。" + Arrays.toString(array)); } } kouzou@GD348ZZD9:/WORK$ javac Sample10_11.java kouzou@GD348ZZD9:/WORK$ java Sample10_11 エラー: メイン・クラスSample10_11を検出およびロードできませんでした 原因: java.lang.NoClassDefFoundError: sample/sample10/Sample10_11 (wrong name: Sample10_11)

    • ベストアンサー
    • Java
  • JavaソースコードをコンパイルするJavaプログラム

    タイトルの通りですが、Javaソースコードをコンパイルし、実行するJavaプログラムを作りたいのですが、なにか有効な方法はありますでしょうか。 Runtime.getRuntime().exec( "javac Test.java" ); のようにすると、エラーになります。 なにか良い方法をご存知でしたら、よろしくお願いします。

    • ベストアンサー
    • Java
  • 同一パッケージ内の継承について

    同一パッケージ内で継承したクラス Test2.java をコンパイルすると「シンボルを見つけられません シンボル:クラス Test1」とエラーになります。 --------Test1.java------- package test; public class Test1{ メソッド } ------------------------- --------Test2.java------- package test; public class Test2 extends Test1{ メソッド } ------------------------- Test1.java,Test2.javaとも同一フォルダ(D:\java\test)にあります。 ちなみにカレントディレクトリをD:\java\testにして javac Test2.java でコンパイルしようとしています。 同一パッケージ内のクラスを継承するというのはおかしなことなんでしょうか?また、コンパイルの仕方もあわせてご教示願えれば助かります。 よろしくお願いします。

    • ベストアンサー
    • Java
  • コンパイルエラー

    //test.cpp #include<iostream> #include<string> class test { string hoge; public: test(string str); void method() const; } 14行目  test::test(string str) : test(hoge){} void test::method() const { std::cout << "test" << std::endl; } int main() { string s; std::cout << "名前を入力してください。" << std::endl; std::cin >> s; test aaa(s); aaa.method(); } コンパイルしようとすると下記エラーになります。 エラー E2303 test.cpp 7: 型名が必要 エラー E2139 test.cpp 7: 宣言に ; がない エラー E2293 test.cpp 10: ) が必要 エラー E2147 test.cpp 14: 引数宣言は 'string' で始められない エラー E2111 test.cpp 14: ここでは型 'test' は定義できない エラー E2136 test.cpp 14: コンストラクタには戻り型は指定できない エラー E2316 test.cpp 14: 'test::test(int)' は 'test' のメンバーではない エラー E2451 test.cpp 22: 未定義のシンボル string(関数 main() ) エラー E2379 test.cpp 22: ステートメントにセミコロン(;)がない(関数 main() ) エラー E2451 test.cpp 24: 未定義のシンボル s(関数 main() ) *** 10 errors in Compile *** ■1.型名が必要 →string hoge;と宣言してる箇所でエラー発生。 …stringと宣言してるのになぜでしょうか… ■2.宣言に";"がない →string hoge;と宣言してる箇所でエラー発生。 …";"つけてるのですが… ■3.")"が必要 →test(string str);の行でエラー発生。 …")"はどこで必要なのでしょうか ■4.引数宣言はstringでははじめられない →test::test(string str) : test(hoge){}の行でエラー発生。 …C++って引数をstringで受け取れない…?どういうことでしょうか などなど疑問がいっぱいあるのですが、どこが間違っているのかよくわかりません…ご指導よろしくお願いします。

  • JAVA コンパイル時のエラー

    JAVAの初心者です。 javacでコンパイルする際, gui は abstract でなく、java.awt.event.KeyListener 内の abstract メソッド keyReleased(java.awt.event.KeyEvent) をオーバーライドしません。 public class gui extends JFrame implements ActionListener,KeyListener { このようなエラー文がでます。 このエラー文の意味を教えていただけないでしょうか。 よろしくお願いします。

このQ&Aのポイント
  • パソコンとプリンターの無線接続ができない場合、設定の確認や接続方法の変更を試してみましょう。
  • 「プリンターの検出」や「PC/スマホでかんたん接続」を試しても接続に失敗する場合、WPS(PINコード)での接続やIPv4アドレスの入力を試してみてください。
  • しかし、それでも接続できない場合は、Wi-Fiルーターやファイアウォールの設定を確認しましょう。キヤノン製品のオンラインマニュアルも参考にするとよいでしょう。
回答を見る

専門家に質問してみよう