Java 如何改变结果的输出?

Java 如何改变结果的输出?,java,for-loop,math,sum,Java,For Loop,Math,Sum,我试着求和,其中基数是1-4,expNumber是,我试着使用for循环,但不起作用,也不知道问题出在哪里。我应该在哪里升到4,所以是basnum 我试着改变数字的位置,但最奇怪的是总和有时是负数 公共静态void main(字符串[]args) { intbasenum=1; int-exp=2; 梅托达(basenum,exp); } 公共静态void metoda(int basenum,int exp) { 对于(int i=1;i首先,您使用的是basenum而不是exp来定义功率 f

我试着求和,其中基数是1-4,expNumber是,我试着使用for循环,但不起作用,也不知道问题出在哪里。我应该在哪里升到4,所以是basnum

我试着改变数字的位置,但最奇怪的是总和有时是负数

公共静态void main(字符串[]args) {

intbasenum=1;
int-exp=2;
梅托达(basenum,exp);
}
公共静态void metoda(int basenum,int exp)
{

对于(int i=1;i首先,您使用的是
basenum
而不是
exp
来定义功率

for(int i = 1; i <= basenum; i++)  // should be `i <= exp`

for(int i=1;i整数溢出我猜。你的
basenum
增长速度比
i
快得多。你试图循环到
basenum
,但每回合都会增加
basenum
(直到溢出)。在“调试”下一步一步地运行代码并亲自查看。调试代码。第一次迭代后,
basenum
是16,
i
是2,小于
basenum
,因此它将再次进入循环,在它之后,
basenum
2^8
i
是3,然后
basenum
是2^16,然后是一个整数溢出会发生,因为2^32大于Integer.MAX_值,它变为0。现在
i
更大,您退出循环并返回0。[link]这实际上是我尝试执行的操作。
for(int i = 1; i <= basenum; i++)  // should be `i <= exp`