import java.util.Scanner;public class Test_resolve {
public static void resolve(int num){
for(int i = 2; i <= num/2; i++){
if(num % i == 0){
System.out.print(i+"*");
resolve(num/i);
}
}
System.out.println(num);
System.exit(0);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
resolve(number);
}
}
这是一个简单的质数分解程序,System.exit(0);在程序中是什么作用,如果没有这句话,程序打印出来的效果就完全不同了,这是什么情况

解决方案 »

  1.   


    System.exit(0)退出程序的意思2种参数返回值:
     System.exit(0)--正常结束程序 
     System.exit(1)--异常关闭程序;例如:你写一个批处理来启动程序,运行时你就可以根据返回值来判断程序运行的对与否
      

  2.   

    System.exit 退出程序由于你用的是递归,所以在某个递归时会退出程序。
      

  3.   

    System.exit(0)是把虚拟机停了。程序退出
      

  4.   

    虚拟机进程停止,也就是当前程序进程退出了。
    由于你用的是递归调用,如果在调用最后一层不退出程序的话,当回归的时候会接着调用
    System.out.println(num);
    效果自然不一样了。
      

  5.   

    打印是异步的,即发送一个打印请求由其他线程执行,System.exit(0)执行时可能还没有打印完