2011-03-16 10 views
0

if文がファイルが存在しないことを返す場合、プログラムを終了しようとしています。現時点では、メソッドはファイルが見つからない場合、プログラムを終了しようとします。

public static void calcMarks() 
    { 
     String Assessment1 = null, Assessment2 = null, Assessment3 = null; 
     int mark1 = 0,mark2 = 0,mark3 = 0,sum = 0; 
     try { 
     File doc = new File ("marks.txt"); 
     if(!doc.exists()) 
     { 
     System.out.println ("Marks.txt Does Not Exist"); 
     System.exit(); 
     } 
     if(!marks.exists()) 
     { 
     System.out.println ("TotalMarks.txt Does Not Exist"); 
     System.exit(); 
     } 
     Scanner input = new Scanner(doc); 
     while (input.hasNext()){ 
      Assessment1 = input.next(); 
      mark1 = input.nextInt(); 
      Assessment2 = input.next(); 
      mark2 = input.nextInt(); 
      Assessment3 = input.next(); 
      mark3 = input.nextInt(); 

     } 
     input.close(); 
     sum = mark1 + mark2 + mark3; 
     System.out.println(Assessment1 + " " +mark1 +"\n"+ Assessment2 + " "+mark2 +"\n"+ Assessment3 + " "+mark3+ "\n" + "Total" +""+ "=" + sum); 
    } 
    catch (FileNotFoundException ex) { 
     System.err.println("File has not been found"); 
    } 

    } 

ですが、System.exit()にあります。 if文ですが、Jaba.lang.systemでexit(int)というエラーが出ます。 ()

に適用することができない私は、あなたが終了()メソッドに戻り値を渡す必要が

答えて

3

何を意味するのか見当がつかない。 最適には、System.exit(0);が必要です。

thisを読むことができます。

+1

+1。エラーメッセージは、実際にあなたがそれを読んでいることを知っていれば、 int) 'は'() 'には適用できません。 –

+0

なぜintが必要なのでしょうか?それは何のために必要なのですか? – Chris

+0

通常、C/C++では、少なくともプログラムの実行方法を表す値を返します。あなたのプログラムは成功し、何か他のもの(通常は肯定的なもの)はエラーがあることを意味しました。私はJavaのためにゼロを使用します。 –

0

終了するには、リターンコードを渡す必要があります。 java.lang.Systemのドキュメントをご覧ください。 System.exit(-1);が動作するはずです。

0

System.exitのパラメータとして整数を入力する必要があります。

System.exit(0); 

又は

System.exit(1); 
1

あなたはSystem.exit()メソッドに(整数として)ステータスコードを通過しなければなりません。このメソッドの引数のないバージョンはありません。

The method's documentation

は、現在実行中のJava仮想マシンを終了します。引数はステータスコードとして機能します。慣習的に、非ゼロステータスコードは異常終了を示します。 このメソッドは、Runtimeクラスのexitメソッドを呼び出します。このメソッドは正常に返されません。

パラメータ:ステータス - 終了ステータス。

0

私はJavaプログラマではないんだけど、それが終了コードを持っている必要があります)にSystem.exit(ように私には見えます。これを試してみてください:

System.exit(0); 
0

System.exit(int)は、整数の引数を必要とします。

System.exit(1); 

オペレーティングシステムは、あなたのプログラムを生み出したプログラムに報告するExit Statusを期待しています。

これ以上のニックピック:入力をループして変数に格納し、ループの最後までこれらの変数を使用しないでください。あなたはあなたのルーチンに最後の入力を除くすべてを捨てるでしょう。だからあなたがそのバグを探しに行くとき、あなたはどこを見るかを知るでしょう。 :)

0

私はjavaを正しく覚えていれば、引数を渡す必要があります。これはデバッグツールとして機能し、プログラムを強制終了する部分を簡単に指示できます。何も印刷する必要はありません。一般に、成功した任意の出口および任意の他の所定の値については、「エラーコード」としてプログラマによって0が使用される。あなたの出口の呼び出しを次のように変更したいと考えています: