的Java:使用短而不是INT
问题描述:
我写一个函数来测试使用的短用java的Java:使用短而不是INT
public static short shortFactorial(short n)
{
short lIndex = 1;
short lResult = 1;
for(lIndex = 1;lIndex <= n;lIndex++)
{
lResult = (short)(lIndex * lResult);
}
return(lResult);
}
我呼吁与最大尺寸的功能很短,即:
shortFactorial((short)33000)
谁能告诉我为什么结果是1?
答
由于short
的最大值为32767,(short)33000
会溢出到负值,因此您的循环不会重复。当您初始化lResult = 1
时,它返回1.
Short.MAX_VALUE = 32767,lIndex永远不会低于n,因为n溢出为负数。因此您跳过循环并返回1. –
谢谢,您的脑子在我的脑子里滴答滴答。 – signalmarkp