谁能分析一下 这java程序的 执行结果 谢谢
public class Test
{
public static void main(String[] args)
{
int n = 4;
int k, fact = 1;
for(k = n; k >= 1; k++)
{
fact *= k;
}
System.out.println(n + "!=" + fact);
}
}为什么结果是 4!=0 这个 求解 谢谢
public class Test
{
public static void main(String[] args)
{
int n = 4;
int k, fact = 1;
for(k = n; k >= 1; k++)
{
fact *= k;
}
System.out.println(n + "!=" + fact);
}
}为什么结果是 4!=0 这个 求解 谢谢
public class Test4 {
public static void main(String[] args) {
int n = 4;
int k, fact = 1; for (k = n; k >= 1; k++) {
System.out.println(k + "-------------");
fact *= k;
System.out.println(fact);
if (k == 50) {
break;
}
}
System.out.println(n + "!=" + fact);
}
}
最后你乘法之后,超过了int的最大范围了。所以根据你的 fact的类型,默认就为0了。
我不清楚fact变得超过int能表示的最大范围会怎么样 你们的解释我很感谢 谢谢各位 我想具体的了解一下细节 请问有什么参考资料吗 谢谢 能不能提供一个参考资料的地址或者书籍 谢谢了
你的for()循环写的不合适for(初始值;循环条件;运算表达式)
你可以这样改,就实现了,可以这样改代码,你就明白了:public class ForTest
{
public static void main(String[] args)
{
int n = 4;
int k, fact = 1;for(k = 1; k <=n; k++)//或者改成for (k = n; k >= 1; k--)
{
fact *= k;
}
System.out.println(fact);System.out.println(n + "!=" + fact);
}
}