可以System.exit()
使用哨兵值吗?
如果不是System.exit()
提供的目的是什么?
如果此代码处于循环中且已输入,是否会退出?
String day;
day = JOptionPane.showInputDialog("what is todays date");
JOptionPane.showMessageDialog(null,"Today is: " + day);
System.exit(1);
答案 0 :(得分:1)
1.can system.exit()可用于哨兵值吗?
为什么要将它用作哨兵值?您可能无法在循环中将其用作循环保护,因为一旦退出,您的程序就会终止。
其次,如果有任何未完成的任务,你的程序将突然终止。
如果不是2.system.exit()提供的目的是什么?
您可以查看有关Java的System.exit()的帖子:Java's System.exit(0); vs C++ return 0;
3.如果此代码处于循环中并且它们输入1.它会退出吗?
无论输入什么内容,您的代码最终都会退出。它不仅会退出循环,还会终止你的程序。要跳出循环,请使用break
而非System.exit()
。
要跳过循环中的其余代码,请使用continue
。
答案 1 :(得分:0)
按顺序出现:
System.exit(status)
用作哨兵值,因为它不是值,而是方法调用; System.exit(int status)
退出应用程序和虚拟机,结束所有线程并将status
代码返回给调用应用程序或终端; System.exit
方法的线程不会执行调用后出现的任何代码,并且VM将被终止。请注意,编译器不会将对System.exit(int status)
的调用视为其所在代码块的退出点。这意味着您可能会遇到编译器错误,如果您会抛出异常,而是使用break
,continue
或return
。编译器不知道System.exit(int status)
做了什么,它只是将其视为任何其他方法调用。
要退出循环,您应该使用break
或在while
或for
中使用布尔条件(在第一个;
之后字符)。
通常只有在应用程序需要提前终止时才会调用System.exit()
,并返回0
以外的错误代码。通常,当所有(非deamon)线程都已完成时,应用程序将以状态码0退出。这通常是在不执行多线程的应用程序中退出main
方法时(GUI应用程序通常执行多线程)。
答案 2 :(得分:0)
任何流都不应该从System.exit()派生。
您从程序中退出了各种其他模式
返回,继续,中断甚至你都可以抛出逻辑异常,这也让你知道程序的状态。