异常-大神,我的代码哪里错了·?求指教,本人是新手

问题描述

大神,我的代码哪里错了·?求指教,本人是新手

//filename:App9_4.java
public class App9_4
{
public static double multi(int n)
{
if(n<0)
throw new IllegalArgumentException("求负数阶段异常");
double s=1;
for(int i=1;i<=n;i++)
{
s=s*i;
return s;
}
}
public static void main(String[] args)
{
try
{
int m=Integer.parseInt(args[0]);
System.out.println(m+"!="+multi(m));
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println("命令行中没有参数");
}
catch(NumberFormatException e)
{
System.out.println("应输入一个整数!");
}
catch(IllegalArgumentException e)
{
System.out.println("出现的异常是"+e.toString());
}
finally
{
System.out.println("程序运行结束");

解决方案

代码错误,你总应该说一下是什么错误吧,让大家猜这可不是什么好事。
猜 的话,常见的无非就是数值范围越界了。

解决方案二:

有什么错误提示?先发出来看看吧。

解决方案三:

multi可能没有返回值 。
故加入return 0即可。

    public static double multi(int n) {
        if (n < 0)
            throw new IllegalArgumentException("求负数阶段异常");
        double s = 1;
        for (int i = 1; i <= n; i++) {
            s = s * i;
            return s;
        }
    }

解决方案四:

这应该是一个求N!的程序,multi函数没有返回值,我简单修改了一下:

```public class App9_4 {
public static double multi(int n) {
if (n < 0)
throw new IllegalArgumentException("求负数阶段异常");
double s = 1;
for (int i = 1; i <= n; i++) {
s = s * i;
}
return s;
}

public static void main(String[] args) {
    try {
        int m = Integer.parseInt(args[0]);
        System.out.println(m + "!=" + multi(m));
    } catch (ArrayIndexOutOfBoundsException e) {
        System.out.println("命令行中没有参数");
    } catch (NumberFormatException e) {
        System.out.println("应输入一个整数!");
    } catch (IllegalArgumentException e) {
        System.out.println("出现的异常是" + e.toString());
    } finally {
        System.out.println("程序运行结束");
    }
}

}


解决方案五:

    public static double multi(int n) {
        if (n < 0)
            throw new IllegalArgumentException("求负数阶段异常");
        double s = 1;
        for (int i = 1; i <= n; i++) {
            s = s * i;
            return s;
        }
        return 0; //添加了这里。
    }

解决方案六:

骚年你的return语句位置不对啊,你要让他计算阶乘起码要到for外边啊。

时间: 2024-08-06 06:29:16

异常-大神,我的代码哪里错了·?求指教,本人是新手的相关文章

c语言acm1003 求大神看看我的代码哪错了

问题描述 c语言acm1003 求大神看看我的代码哪错了 Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14. Input The first line of the input

java se-随机数入两个数求期中素数和 求大神帮看看代码哪里错了

问题描述 随机数入两个数求期中素数和 求大神帮看看代码哪里错了 package exe; import java.applet.*; import java.awt.*; import java.awt.event.*; public class Prime extends Applet implements ActionListener { Label l1,l2; TextField t1,t2; TextArea T1; Button b1; public void init() { l1

大神帮忙看看那写错了

问题描述 大神帮忙看看那写错了 求你们帮我看看 为什么结果显示不出来 谢谢 如需要html代码 请说一下 谢谢 没有那个点击 按钮 click事件 我还没有添加 js // 金额 input1 上浮 shangfu 利息 lixi 本息合计 benxi 计算结果 bizhong $("documetn").ready(function() { //初始化存入日期 var d = new Date(); var s2 = d.getFullYear() + "-" +

c#-用C#将数据库的数据导出,结果生成的txt是空的,求大神看一下代码哪里不对?

问题描述 用C#将数据库的数据导出,结果生成的txt是空的,求大神看一下代码哪里不对? private void button1_Click(object sender, EventArgs e) { FileDialog sfd = new SaveFileDialog(); if (sfd.ShowDialog() == DialogResult.OK) { using (FileStream fstream = File.OpenWrite(sfd.FileName)) { StreamW

acm-ACM HDU1879继续畅通工程 提交RE.求各路大神帮忙看一下哪儿错了

问题描述 ACM HDU1879继续畅通工程 提交RE.求各路大神帮忙看一下哪儿错了 题目大意: 求最小生成树的权值和,并输出.已经修建的路(已经连上的边)是不会算入到最后的ANS中. Input 测试输入包含若干测试用例.每个测试用例的第1行给出村庄数目N ( 1< N < 100 ):随后的 N(N-1)/2 行对应村庄间道路的成本及修建状态,每行给4个正整数,分别是两个村庄的编号(从1编号到N),此两村庄间道路的成本,以及修建状态:1表示已建,0表示未建. 当N为0时输入结束. Samp

运行错误-求c语言大神帮忙看看哪里出错了

问题描述 求c语言大神帮忙看看哪里出错了 #include #include #include struct course { int num; //选题编号 char name[20];//课题名称 char kind[10];//课程性质 int taltime,ttime,etime,mark,term;//课程时间,学分,开课信息 }; struct student { int snum; //学生学号 int cnum; //所选课题编号 char cname[20];//所选课题名称

asp.net-跪求各位大神帮我看看哪错了吧

问题描述 跪求各位大神帮我看看哪错了吧 基于asp.net开发的,数据库是sql server2005.无法将信息添加到数据库中. 添加按钮click事件代码如下: protected void Button1_Click(object sender, EventArgs e) { string sql; sql = "insert into shipinxinxi(mingcheng,leibie,danjia) values('"+mingcheng.Text.ToString()

链表-@数据结构大神,这个代码中,①、②、③执行顺序有区别嘛?为啥?

问题描述 @数据结构大神,这个代码中,①.②.③执行顺序有区别嘛?为啥? 解决方案 顺序错了的话(比如先操作③的话),有可能丢失后面的节点

求大神给该段代码详细注解(MFC 俄罗斯方块)

问题描述 求大神给该段代码详细注解(MFC 俄罗斯方块) // TetrisDlg.cpp : 实现文件 // #include "stdafx.h" #include "myself.h" #include "Tetris.h" #include "TetrisDlg.h" #include #include // #include // #include //导入声音头文件 // #pragma comment(lib,&

蓝桥杯 c c++ 编程-请大神指导,不懂哪里错了

问题描述 请大神指导,不懂哪里错了 这是杨辉三角,蓝桥杯的试题,试了几组数据都是对的,可是提交上去却是零分,不懂哪里错了,求指导,谢谢 解决方案 题目是这个,照片不清楚,拜托了! 问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数. 它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加. 下面给出了杨辉三角形的前4行: 1 1 1 1 2 1 1 3 3 1 给出n,输出它的前n行. 输入格式 输入包含一个数n. 输出格式 输出杨辉三角形的前n行.每一