2016-10-05 77 views
0

这段代码需要两个数字的基数和整数,它将它乘以,但是当我尝试运行它时,它需要数字,然后没有任何反应。我试图让我的程序打印,但没有任何反应,当我运行它

import java.util.Scanner; 
public class RaisedToThePower 
{ 
public static void main(String [] args) 

{ 

Scanner reader = new Scanner(System.in); 

int base; 
int exponent; 
double x; 

System.out.println("Enter the base"); 
base = reader.nextInt(); 

System.out.println("Enter the exponent"); 
exponent = reader.nextInt(); 

x = base^exponent; 

while (exponent > (-1)); 
{ 
    System.out.println(x); 
    } 

while (exponent <= -1); 
    { 
    System.out.println("Thanks for playing"); 
    } 
} 
} 
+1

这是什么'x = base^exponent;'? –

+0

@ScaryWombat但奇怪的是,他有两个无限循环,这两个循环仍应该打印。 –

+0

您的观察结果与代码不符。你应该看到印刷的东西。 –

回答

5

为什么不执行打印作业:

您还没有打印任何东西,因为你做

while (exponent > (-1)) ; 

;结束,同时声明,因为它是一个无限循环,你从来没有打印任何东西。

{ 
    System.out.println(x); 
} 

这只是一个块,这不属于同时

要解决此声明:

while (exponent > (-1)) // no ; here 
{ 
    System.out.println(x); 
} 

这仍然将是一个死循环,如果指数大于-1。

下一个虽然有同样的问题。


其他问题:

x = base^exponent; 

这并不执行幂。

^是java中的异或运算符。 (见Java Operators

为了得到一个指数的,你需要使用电源:

Math.pow(base, exponent); 

从Java文档:

返回提高到电源的第一个参数的值第二个参数。

+0

更新了我的回答 –

+0

你肯定有+1 –

-2

这不是你如何得到一种碱的功率:

x = base^exponential; 

一个简单Math.pow例如,显示器2的8

Math.pow(2, 8) 

For details

功率

第一个答案已经解释了一切。

+1

这甚至不试图解释为什么OP的代码没有打印任何东西。 –

+1

Java中有这样的事情......'base^exponential'是'base exclusive-or exponential' – searchengine27

0

你有; while(指数>(-1)); while循环结束时除了印刷以外,您在两个循环内都没有做任何事情。任何循环都会被无限循环所击中。

相关问题