Java 按0时如何应用系统退出

Java 按0时如何应用系统退出,java,recursion,factorial,Java,Recursion,Factorial,我有一个接受用户输入的阶乘程序。一切正常,但我正试图通过输入0来确定如何结束程序。因为它是基于布尔运算的,所以我不能输入if语句,因为我会得到一个编译错误 import java.util.*; import java.io.*; public class Assignment2A { public static void main(String[] args){ Scanner scan = new Scanner(System.in); bool

我有一个接受用户输入的阶乘程序。一切正常,但我正试图通过输入0来确定如何结束程序。因为它是基于布尔运算的,所以我不能输入if语句,因为我会得到一个编译错误

import java.util.*;
import java.io.*;

public class Assignment2A {

    public static void main(String[] args){ 
        Scanner scan = new Scanner(System.in);
        boolean correct = false;
        while(!false){
            try{
                System.out.println("Welcome to the factorial function");
                System.out.println("Please enter a number or press 0 to exit");
                int n = scan.nextInt();
                // if(n=0){
                // System.exit(0);
                //}
                int factorial= fact(n);
                System.out.println("The Factorial of the number entered is: " + factorial);
                correct = true;
            }catch(Exception e){
                System.out.println("That is not a number!");
                System.exit(0);
            }
        }
    }

    static int fact(int n){
        int output;
        if(n==1){
            return 1;
        }
        output = fact(n-1)*n;
        return output;
    }
}

不幸的是,没有任何(简单的)方法可以做到这一点。最接近的等效方法是实现一个
KeyListener
,但这仅适用于Swing方法(windows和stuff,而不是CLI)


相反,您应该检查是否输入了某个值。例如,0!仅为1,因此您可以让您的程序说“输入一个数字作为因子,或输入0作为退出”。你也可以用负数来做,因为你的程序似乎不能很好地处理负数。顺便说一句,也许你也应该加一个负数检查。

所以我也是初学者,但试试这个

System.out.println(“欢迎使用阶乘函数”)

System.out.println(“请输入一个数字或按0退出”)

int n=scan.nextInt()


如果(n==0)中断//将中断放在这里并尝试一下,尝试使用退出,但对我不起作用(!false){与
相同,而(true){
应该是
如果(n==0)
,而不是
(n=0)
仅供参考:你不需要
系统的大锤。退出这里-只要调用
中断