标题:请大家帮我看看,这个程序有什么问题,还是软件的问题,我是新手
只看楼主
蔡梓锋
Rank: 4
等 级:业余侠客
帖 子:106
专家分:202
注 册:2013-4-20
结帖率:100%
已结贴  问题点数:10 回复次数:1 
请大家帮我看看,这个程序有什么问题,还是软件的问题,我是新手
public class aa {
    public static void main(String args[]){
        int num1,num2;
        num1=Integer.parseInt(args[0]);
        num2=Integer.parseInt(args[1]);
        System.out.println(num1>num2?args[0]+" 是最大数":args[1]+" 是最大数");
    }

}
这个程序Integer.parseInt是接收函数吗?是不是和c语言里面的scanf("%d",&num1);
在两个软件运行的错误分别是:


请尽量给我详细的解释,我是新手
搜索更多相关主题的帖子: public c语言 软件 
2013-11-27 16:16
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
得分:10 
Integer.parseInt这个是数据转型,这里时将String转为int型
再者,定义变量,最好初始化,否则可能发生空指针异常,这里 int num1,num2;要初始化。
还有你转型的参数是args[],这个你同样没有初始化,建议,重新定义一个,实例化一下,给个初始化值。这样就不会报错了
程序代码:
public class aa {
    public static void main(String args[]){
        int num1 = 0;
        int num2 = 0;
        String[] str = new String[10];//你下面报了数组越界的错,是因为你没有初始化数组,没有给它定义长度。这里就先设长度为10
        //因为下面引用了数组中的值,但是我数组中是没有值的,所以,这里最好先给数组设值,
        //如果是重其他地方引用过来的,那就必须先来个非空判断,确保不会发生空指针异常。
        //这里我写一个循环给数组设值,(如果是引用的就不需要)只要判空即可。
        for(int i = 0; i<str.length; i++){
            str[i] = i.toString();//设值,转型
        }
        num1=Integer.parseInt(str[0]);//这里可以用,Integer。valuesOf()
        num2=Integer.parseInt(str[1]);
        System.out.println(num1>num2?args[0]+" 是最大数":args[1]+" 是最大数");//实际开发中,这个比较是有问题的,同样,先判空再比较。
    }
//ps:代码纯手打,所以你运行看看,有没有单词打错的,或者什么的。不一定正确
}

学海无涯#¥%……&*(
2013-11-27 19:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-424293-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.074976 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved