按0时如何应用系统退出

时间:2016-02-06 04:01:57

标签: 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);
        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;
    }
}

2 个答案:

答案 0 :(得分:0)

不幸的是,没有任何(简单)方法可以做到这一点。最接近的等价物是实现KeyListener,但这仅适用于Swing方法(窗口和东西,而不是CLI)。

相反,您应该检查是否输入了某个值。例如,0!只有1,所以你可以让你的程序说"输入一个数字来计算因子,或输入0退出"。您也可以使用负数来执行此操作,因为它看起来不像您的程序可以很好地处理它们。另外,也许您应该添加一个负数的检查。

答案 1 :(得分:0)

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

System.out.println("欢迎使用阶乘函数&#​​34;);

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

int n = scan.nextInt();

如果(N == 0)断裂; //把休息放在这里然后尝试一下,尝试使用退出并且没有为我工作