如何退出无休止的Java程序并打印消息?

如何退出无休止的Java程序并打印消息?,java,command-line-interface,console-application,systemexit,Java,Command Line Interface,Console Application,Systemexit,假设我有一个java程序(实际上我写了一个CLI),它进入一个无止境的循环,在这个循环中它递增一个计数器。当我在命令行中按Ctrl+C退出程序时,是否可以打印计数器的值然后退出?假设我有这样一个函数: public void count(){ int count = 1; while (count>0) { count++; } } 现在,我调用这段代码并开始执行。过了一会儿,我在终端上按Ctrl+C,程序被迫退出。当它退出时,我是否可以打印cou

假设我有一个java程序(实际上我写了一个CLI),它进入一个无止境的循环,在这个循环中它递增一个计数器。当我在命令行中按Ctrl+C退出程序时,是否可以打印计数器的值然后退出?假设我有这样一个函数:

public void count(){
    int count = 1;
    while (count>0) {
        count++;
    }
}
现在,我调用这段代码并开始执行。过了一会儿,我在终端上按Ctrl+C,程序被迫退出。当它退出时,我是否可以打印count的值然后退出

注意:我并不是在我的程序中这样做的。我只是想知道是否有一种方法可以强制退出程序,并在强制退出时将内容打印到控制台。

您可以在空闲时使用
break()
方法。 例如:

int count = 1; 
while (count>0)
{
 count++;
 if(count==10){
      break();
 }
 }
 System.out.println(String.valueof(count));
当计数等于10时,此代码结束。您可以在while中使用
break()
方法。 例如:

int count = 1; 
while (count>0)
{
 count++;
 if(count==10){
      break();
 }
 }
 System.out.println(String.valueof(count));

当计数等于10时,此代码结束。从另一个站点轻微复制意大利面(不过StackOverflow更喜欢这里的答案)

公共类主{
public static var message;//可以是字符串、int或其他任何形式。
静态类ForceClosedMessage扩展线程{
公开募捐{
System.out.println(消息);
}
}
公共静态void main(字符串…参数){
Runtime.getRuntime().addShutdownHook(newForceClosedMessage());
//干你的事吧
}
}

从另一个站点复制意大利面(StackOverflow更喜欢这里的答案)

公共类主{
public static var message;//可以是字符串、int或其他任何形式。
静态类ForceClosedMessage扩展线程{
公开募捐{
System.out.println(消息);
}
}
公共静态void main(字符串…参数){
Runtime.getRuntime().addShutdownHook(newForceClosedMessage());
//干你的事吧
}
}

您的程序不是无止境循环,因为count将溢出到-2**31-1,这小于0您的程序不是无止境循环,因为count将溢出到-2**31-1,这小于0。他希望在从命令行(不使用break语句)按Ctrl+C退出程序之前打印值。无论如何,break是一个语句而不是一个方法。不要在断头台上使用支架;他希望在从命令行(而不是使用break语句)按Ctrl+C退出程序之前打印该值。无论如何,break是一个语句而不是一个方法。不要在断头台上使用支架;非常感谢。这才是真正有效的,这就是我一直在寻找的!非常感谢。这才是真正有效的,这就是我一直在寻找的!