Java 按0时如何应用系统退出
我有一个接受用户输入的阶乘程序。一切正常,但我正试图通过输入0来确定如何结束程序。因为它是基于布尔运算的,所以我不能输入if语句,因为我会得到一个编译错误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
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)
仅供参考:你不需要系统的大锤。退出这里-只要调用中断
。