这段代码将两个数字作为基数和一个整数,然后将它相乘,但是当我尝试运行它时,它会取数字,然后什么也没发生。
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");
}
}
}
答案 0 :(得分:5)
为什么没有打印:
你没有打印任何东西,因为你做了
while (exponent > (-1)) ;
;
结束了while语句,因为它是一个无限循环,你永远不会打印任何东西。
{
System.out.println(x);
}
这只是一个块中的语句,它不属于while
解决此问题:
while (exponent > (-1)) // no ; here
{
System.out.println(x);
}
如果指数大于-1,这仍然是无限循环。
下一次遇到同样的问题。
其他问题:
x = base^exponent;
这不执行取幂。
^
是java中的XOR运算符。 (见Java Operators)
要获得指数的力量,您需要使用:
Math.pow(base, exponent);
来自java docs:
返回第一个参数的值,该值是第二个参数的幂。
答案 1 :(得分:0)
你有;在每个while循环结束时while(指数&gt;( - 1));除了打印之外,你在两个循环中都没有做任何事情。任何一个循环被击中它将是无限循环。
答案 2 :(得分:-2)
这不是你如何获得基础的力量:
x = base ^ exponential;
一个简单的Math.pow示例,显示2到8的幂。
Math.pow(2, 8)
第一个答案已经解释了一切。