本元初学者 2021-01-07 16:13 采纳率: 25%
浏览 1
已采纳

Java异常方面的问题

package one;
public class haha {
public static void main(String[] args) {
if(args.length!=1){
System.out.println("输入错误!请输入一个正整数");
System.exit(0);
}
try {
int n=Integer.parseInt(args[0]);
System.out.println("n="+n+","+"n!="+Factorial(n));
}
catch(NumberFormatException iae) {
System.out.println("命令行参数n应为正整数");
}
catch(IllegalArgumentException iae) {
System.out.println("命令行参数有错误"+iae.toString());
}
}
static int Factorial(int n) throws IllegalArgumentException{
if(n<1)
throw new IllegalArgumentException("N应为正整数!");
int sum=1;
for(int i=1;i<=n;i++)
sum*=i;
return sum;

}
 }
题目:通过命令行形式输入一个正整数n,计算n!的值,并输出显示,要求:加入异常机制

上面程序是答案,但是有问题,我一直没有找出来,也没调好。希望有大佬帮我看看,谢谢
 

  • 写回答

1条回答 默认 最新

  • 咸着的一条鱼 2021-01-07 17:25
    关注
    import java.util.Scanner;
    
    /**
     * @author cuizw
     * @date 2021/1/7 17:09
     */
    public class haha {
        public static void main(String[] args) {
    
           Scanner key=new Scanner(System.in);
            double s=key.nextDouble();
            double tmp = s * 2;
            if(s <= 0 || tmp % 2 != 0){
                System.out.println("输入错误!请输入一个正整数");
                System.exit(0);
            }
            try {
                int n=(int)s;
                System.out.println("n="+n+","+"n!="+Factorial(n));
            }
            catch(NumberFormatException iae) {
                System.out.println("命令行参数n应为正整数");
            }
            catch(IllegalArgumentException iae) {
                System.out.println("命令行参数有错误"+iae.toString());
            }
        }
        static int Factorial(int n) throws IllegalArgumentException{
            if(n<1)
                throw new IllegalArgumentException("N应为正整数!");
            int sum=1;
            for(int i=1;i<=n;i++)
                sum*=i;
            return sum;
    
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号