减少While循环

时间:2016-06-11 19:43:51

标签: java loops math

Array
(
[5bnuQsT1Y4S9yk8LRhBeLtT5PWqoAYrv2XlIGu1A] => Array
    (
        [token] => TeamSpeak3_Helper_String Object
            (
                [string:protected] => 5bnuQsT1Y4S9yk8LRhBeLtT5PWqoAYrv2XlIGu1A
                [position:protected] => 0
            )

        [token_type] => 0
        [token_id1] => 8
        [token_id2] => 0
        [token_created] => 1465668613
        [token_description] => 
    )

[df01kyz5BWtgFXDFT+70g5oSze2e3WijYEfbOSDO] => Array
    (
        [token] => TeamSpeak3_Helper_String Object
            (
                [string:protected] => df01kyz5BWtgFXDFT+70g5oSze2e3WijYEfbOSDO
                [position:protected] => 0
            )

        [token_type] => 0
        [token_id1] => 8
        [token_id2] => 0
        [token_created] => 1465668966
        [token_description] => 
    )

 )

为什么while循环会有一个减量,但是在运行程序时它给出了递增的印象。对我来说非常困惑,可能有人解释如何操作这个While循环?

  

C:\ Users \ enrique \ Desktop \ Hello.java> java Power
  2到0的功率是1
  2到1的功率是2
  2到2的功率是4
  2到3的功率是8
  2到4的功率是16
  2到5的功率是32
  2到6的功率是64
  2到7的功率是128
  2到8的功率是256
  2到9的功率是512

5 个答案:

答案 0 :(得分:1)

e是指数,而while循环将数字的值加倍,直到指数小于或等于0.

除非递减,否则它将保留i的值。

您也可以将其转换为for循环,如此

for (int e = i; e > 0; e--) { 
    result *= 2;
} 

我理解这是否是一个学习练习,但Math.pow函数可以做同样的事情。

答案 1 :(得分:0)

您也可以对其他int temp2执行相同操作,这需要采取增量步骤来计算j的{​​{1}}次幂:

i-th

或者,如果你想使用2内循环:

for(int i=0; i<10; i++){
    result = 1;

    for(int j=0; j<i; j++){
        result *= 2;
    }
}

答案 2 :(得分:0)

如果您关注while循环,可以使用以下简化/高效程序。

int max=10, result=1, two=2;
for(int i=0; i<=max;i++)
{
 System.out.println(two + " pow " + i + " = " + result);
result*=two;
}

答案 3 :(得分:0)

您在问题中的代码说明

Loop i from 0 to n
  Set result =1 
   Loop from 1 <= i
      result = result * 2 // multiply 2 the number of times equal to i
  Print result
End loop

答案 4 :(得分:0)

class Power {
public static void main(String args[]) {
  int e;
  int result;

 for(int i=0; i < 10; i++) {
      result =1 ;
      e = i;

      while(e > 0) {
          System.out.println(e); // not part of the original program 
          result *= 2 ;            
          e--;
          System.out.println(e); // not part of the original program           
      }

      // System.out.println("2 to the " + i +             
                      //" power is " + result);      

  }
 }
} 

我发现通过放置System.out.println(e),我可以“看到”变量“e”行为,以便理解减量。这是输出:

C:\用户\恩里克\桌面\ Hello.java&GT; java Power: 1, 0, 2, 1, 1, 0, 3

e = 1(iteration 1), 2^1, e (1) decremented to 0, e = 2 (iteration 2), 2^2, e(2) decremented to 1, e = 1 re-enter The while but is ignored as 2^1 is already registered, e (1) decremented to 0, e = 3 (iteration 3), 2^3…