在javaif双重判断中怎么用if来判断输入值是不是整数?并且限制输入的整数的大小?

可选中1个或多个下面的关键词搜索相关资料。也可直接点“搜索资料”搜索整个问题

对他进行四舍五入,或者取整然后再于原数做对比,相等就是整数不等就是尛数

你对这个回答的评价是?



最快的方式直接转强制换为int,报错就是不整数

你对这个回答的评价是

}

我整天都是在跟javaif双重判断打交道我在javaif双重判断开发中最常用的一段代码就是用object != null在使用对象之前判断是否为空。这么做是为了避免NullPointerException但是我发现这样检测代码实在是太丑叻,而且及其不可读

那有没有一种优雅的替代方法呢?

再清晰化一下我的问题我是在强调在使用对象的属性或者方法之前,确保它不為空的重要性就像下面这段代码一样:

这么些我是为了避免抛NullPointerException异常,我不知道这个对象是不是空的正由于这些判空代码,导致我的代碼血花四溅相当惨不忍睹。

对于我来说这就是一个初级开发者走向中级开发者过程中有时候都会碰到的合理问题:他们不知道也不太信任自己所使用的约定,并且过度的去检查空值情况另外,当他们写代码的时候总是会让方法去返回一些值,因此就可以由方法调用方去检查空值了

换句话说,有两种情况会出现判空语句:

  • null返回值按找约定是正常的返回值
  • null返回值不是正常的返回值

第二种情况很简单鈳以使用assert来判断或者是允许程序报错(即抛NullPointerException)。断言是一个被充分利用的javaif双重判断特性在1.4版本中加入了这个特性。语法如下:

当判断条件为false的时候assert语句就会抛出Error(AssertionError)错误在默认情况下,javaif双重判断虚拟机是不会理会断言语句的当需要使用此特性的时候可以给JVM虚拟机传入-ea参数來启用它。同时也可以针对单个的javaif双重判断类或者是包来使用断言特性这就意味着可以在开发测试的过程中来使用断言验证代码,而在苼产环境就关闭这个特性尽管我已经测试显示断言功能并不会对应用程序产生任何影响。

这个案例中不使用断言是可以的因为代码本身就是会报错的,就像假如你使用断言之后一定会抛出Error错误一样用和不用的区别就是可以尽早的去发现错误,用更有意义更加丰富的信息来描述这个错误,这样你就可以帮助你弄清楚为什么会发生这种错误(假如这种错误你确实不想它发生)

第一种情况就要难解释一點了。如果你对你调用的代码没有控制权的话你就惨了。如果null返回值是正常的话那你就必须去检查它了。

如果可以控制你调用代码(當然常常还是有控制权的)那就是另一回事儿了。还是尽量的不去使用null返回值对于返回集合的方法很简单,只需要返回空的集合就可鉯了而不是null。

对于返回值不是集合的方法就要麻烦一点了。假如碰到下面的情况:

Parse接口从标准输入中接受指令并去执行一些操作,鈳能会去用这个接口实现一个命令行工具那现在就有个约定当没找到合适的操作指令时,就返回空值那这儿就得去验空值了。

一种可選办法就是不使用空返回值而是:

// 这儿当然得空值判断一下啊,这儿根本就不应该出现空值

明显下面这种写法更加简明清晰

其实在findAction()方法中直接抛出更加有意义的错误信息是完全可以的。特别是你在依赖用户输入的应用中对于findAction()方法来说抛出一个带有说明的异常要比光秃禿的抛出一个NullPointerException要好的多。

要是你觉得使用try/catch机制比较丑的话那就给用户比较有意义的反馈。

转载请保留原文出处、译者和译文链接
}

我要回帖

更多关于 javaif双重判断 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信