如果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)。不能应用于()
我不知道这意味着什么
答案 0 :(得分:3)
您需要在exit()方法中传递返回值。
最理想的是,您应该System.exit( 0 );
。
您可以阅读this。
答案 1 :(得分:1)
您必须将状态代码(作为整数)传递给System.exit()方法。这种方法没有参数版本。
终止当前运行的Java虚拟机。该参数用作状态代码;按照惯例,非零状态代码表示异常终止。 此方法在类Runtime中调用exit方法。此方法永远不会正常返回。
参数:状态 - 退出状态。
答案 2 :(得分:0)
您需要传递返回代码才能退出。请查看java.lang.System
的文档。 System.exit(-1);
应该有用。
答案 3 :(得分:0)
您需要输入一个整数作为System.exit的参数。
System.exit(0);
或
System.exit(1);
答案 4 :(得分:0)
我不是Java程序员,但在我看来,System.exit()应该有一个退出代码。试试这个:
System.exit(0);
答案 5 :(得分:0)
System.exit(int)
需要一个整数参数:
System.exit(1);
操作系统期望Exit Status向生成程序的程序报告。
进一步的挑剔:你循环输入,将其存储到变量中,然后在循环结束之前不对这些变量执行任何操作。除了最后一次输入你的日常工作外,你将丢掉所有。因此,当你去寻找那个bug时,你会知道在哪里看。 :)
答案 6 :(得分:0)
如果我没记错,必须将参数传递给。这可以作为调试工具,因此您可以轻松地告诉哪个部分强制程序退出。无需打印任何东西。一般来说,任何成功退出都会使用0,程序员使用任何其他预定值作为“错误代码”。因此,如果没有任何进一步的探索,您可能希望将退出调用更改为以下内容:
System.exit(0); //This would be for a programming successfully running and exiting.
or
System.exit(X); //Where x is any int to signal a program failure