如果我将int变量初始化为int以外的其他内容会发生什么?

时间:2013-05-04 06:36:03

标签: java

假设我要使用以下代码:

int number = b / 2;

其中b是奇数int。会发生什么?

另外,如果b代之以长,那么java会自动将此long转换为int吗?如果b是char,或其他荒谬的东西怎么办?

3 个答案:

答案 0 :(得分:4)

Java会自动扩展类型,但您必须使用强制转换来缩小类型。

我建议你自己尝试一下,因为你可能会学到一些东西。如果没有实际执行,你就无法学习编程。

答案 1 :(得分:0)

它将返回b / 2的整数值,如果b = 3则b / 2将返回1.但如果b是长变量,则说长b = 3,那么它将返回一个错误,表示可能的丢失精度。

答案 2 :(得分:0)

除以整数会产生一个整数,该整数向0舍入。当你开始混合类型时,它取决于它们是否需要加宽(将自动发生)或缩小(在大多数情况下不会自动发生)。

有关除法的详细信息,请参阅Java Language Specification 15.17.2. Division Operator /以及Java Language Specification Chapter 5. Conversions and Promotions缩小和扩大。

但我认为尝试和试验Java程序是一种更好的理解方式,而不仅仅是阅读规范。你不会通过编写一个小测试程序来销毁任何东西。