我试图让我的程序打印,但是当我运行它时没有任何反应

时间:2016-10-05 01:33:51

标签: java

这段代码将两个数字作为基数和一个整数,然后将它相乘,但是当我尝试运行它时,它会取数字,然后什么也没发生。

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");
  }
 }
}

3 个答案:

答案 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)

For details

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