关于判断int是否为空的问题。

一个判断int类型是否为空。a,b为int类型的,是sum方法的两个参数,现在要在命令行中输入两个参数,然后求和,如果在命令行中输入的参数只有一个,则要抛出异常,问题就是... 一个判断int类型是否为空。 a,b为int类型的,是sum方法的两个参数,现在要在命令行中输入两个参数,然后求和,如果在命令行中输入的参数只有一个,则要抛出异常,问题就是怎么判断这两个参数是否为空? 展开
 我来答
风若远去何人留
推荐于2017-09-10 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450127
专业C/C++软件开发

向TA提问 私信TA
展开全部

int作为整型变量,当定义时系统就会分配空间。无论是否赋值或初始化,均已经有了一个值在里面。

所以int本身不存在是否为空的情况。

如果要判断int是否被赋值过,可以用第二个变量来进行控制。如char变量。将第二个变量初始化值为0,当对int赋值时,同时将第二个变量赋值为1.

这样通过判断第二个变量,就可以知道int变量是否被赋值过。


参考代码如下:

int a;
char b = 0;

//做一些操作,可能对a赋值。如果对a赋值了,那么一定要同时把b赋值为1.
if(b == 1) //被赋值过。
   ;//做一些操作。
else //没被赋值过。
   ;//另外的操作。
545282576
2012-11-30 · TA获得超过124个赞
知道答主
回答量:317
采纳率:0%
帮助的人:183万
展开全部
哥,你如果用IDE环境,你这个方法调用编译都不会通过。函数都进不去你判断2个参数是否为空,你在哪里判断啊?你执行的命令的时候回报编译错误的,编译如果没报错。运行的时候JVM也报NOSUCH的错误。
追问
那拜托你说一下应该怎么弄,我是刚学这东西,不太明白,求指导
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zouyikai123888
2012-11-30
知道答主
回答量:17
采纳率:100%
帮助的人:10.1万
展开全部
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;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一起渔职场
2012-11-30 · TA获得超过208个赞
知道小有建树答主
回答量:303
采纳率:0%
帮助的人:117万
展开全部
int值本身是不可能为空的
如果要判断null的话 这样定义 Integer i=1;
Integer是int的封装类 这样的话i就是一个对象了 就可以使用if( i==null)了
追问
意思是一开始定义参数的类型时候就定义成Integer类型?这样参数还可以被赋与整数类型的值么?
追答
当然可以啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e82546a27
2012-11-30 · TA获得超过403个赞
知道小有建树答主
回答量:264
采纳率:100%
帮助的人:243万
展开全部
可以这样:
public int sum(Integer a,Integer b){
if(a==null||b==null){
// 错误处理
}
return a+b;
}
追问
嗯,我的意思是是说,这两个参数值是要在doc命令行里面给赋,这样的话,你说的方法还可不可行啊?
追答
命令行,你可以对命令行输入的参数进行判断,args[] 是数组,可以判断有几个参数,然后如果是2个的话,然后依次判断其是不是能转换为int类型,可以的话再进行下一步操作
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式