关于判断int是否为空的问题。
一个判断int类型是否为空。a,b为int类型的,是sum方法的两个参数,现在要在命令行中输入两个参数,然后求和,如果在命令行中输入的参数只有一个,则要抛出异常,问题就是...
一个判断int类型是否为空。 a,b为int类型的,是sum方法的两个参数,现在要在命令行中输入两个参数,然后求和,如果在命令行中输入的参数只有一个,则要抛出异常,问题就是怎么判断这两个参数是否为空?
展开
5个回答
展开全部
int作为整型变量,当定义时系统就会分配空间。无论是否赋值或初始化,均已经有了一个值在里面。
所以int本身不存在是否为空的情况。
如果要判断int是否被赋值过,可以用第二个变量来进行控制。如char变量。将第二个变量初始化值为0,当对int赋值时,同时将第二个变量赋值为1.
这样通过判断第二个变量,就可以知道int变量是否被赋值过。
参考代码如下:
int a;
char b = 0;
//做一些操作,可能对a赋值。如果对a赋值了,那么一定要同时把b赋值为1.
if(b == 1) //被赋值过。
;//做一些操作。
else //没被赋值过。
;//另外的操作。
展开全部
哥,你如果用IDE环境,你这个方法调用编译都不会通过。函数都进不去你判断2个参数是否为空,你在哪里判断啊?你执行的命令的时候回报编译错误的,编译如果没报错。运行的时候JVM也报NOSUCH的错误。
追问
那拜托你说一下应该怎么弄,我是刚学这东西,不太明白,求指导
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int 的默认值为零,你可以把Int类型的该成 Integer类型的,Integer默认是null 这样就可以区分 零和null的区别啦
追问
呃,总算等到人了,能说的具体点么?最好付一下您的代码
追答
你的a,b两个参数是Int 类型的,是无法区分赋值和未赋值的情况的,因为int未赋值的情况下默认值为0,和你把a或b赋值成0的这两种情况是不能区分的,你可以把a,b原来Int类型的数据改成a,b都为Integer类型的,Integer在未赋值的情况下默认值是null,和赋值成0是有区别的,代码可以这样子写
public int sum(Integer a,Integer b) {
if(a==null || b==null) {
throw new Exception("a或b参数不能为空");
} else {
return a+b;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int值本身是不可能为空的
如果要判断null的话 这样定义 Integer i=1;
Integer是int的封装类 这样的话i就是一个对象了 就可以使用if( i==null)了
如果要判断null的话 这样定义 Integer i=1;
Integer是int的封装类 这样的话i就是一个对象了 就可以使用if( i==null)了
追问
意思是一开始定义参数的类型时候就定义成Integer类型?这样参数还可以被赋与整数类型的值么?
追答
当然可以啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以这样:
public int sum(Integer a,Integer b){
if(a==null||b==null){
// 错误处理
}
return a+b;
}
public int sum(Integer a,Integer b){
if(a==null||b==null){
// 错误处理
}
return a+b;
}
追问
嗯,我的意思是是说,这两个参数值是要在doc命令行里面给赋,这样的话,你说的方法还可不可行啊?
追答
命令行,你可以对命令行输入的参数进行判断,args[] 是数组,可以判断有几个参数,然后如果是2个的话,然后依次判断其是不是能转换为int类型,可以的话再进行下一步操作
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询