Java 如何使用for循环每次将上一个元素加倍?

Java 如何使用for循环每次将上一个元素加倍?,java,for-loop,Java,For Loop,在Java中 打印以下数字:(1、2、4、8、16…等) 到目前为止,我有: int[] b = new int[16]; for (int i = 0; i < 16; i++) int[]b=新的int[16]; 对于(int i=0;i

在Java中

打印以下数字:(1、2、4、8、16…等)

到目前为止,我有:

int[] b = new int[16];
for (int i = 0; i < 16; i++)
int[]b=新的int[16];
对于(int i=0;i<16;i++)

您可以在循环体中保留多个变量:

long number = 1;
for (int i = 0; i < 16; ++i) {
    System.out.println(number);
    number *= 2L;
}
long number=1;
对于(int i=0;i<16;++i){
系统输出打印项次(编号);
数量*=2L;
}
公共作废流程()
{
int值=1;
int最大值=8;
int[]targetArray=新的int[maxItterations];
对于(int index=0;index
使用按位移位并从
int i=1开始

for(int i = 1; i < 16; i <<=1){
    /*...*/
}
for(inti=1;i<16;i另一种简单的方法(以及更好地表示所需内容的方法):

int limit=100;//或请求的任何内容

对于(int i=1;i)数组的用途是什么?为什么要递增而不是加倍?为什么要在16时停止?@shmosel你的意思是数组的用途是什么?这只是一本书中的练习。我可以得到(2,4,6,8…)但不是每次实际的双精度。@shmosel好的,我现在得到递增部分,正如你建议的,我将使用I*=2。停止在16,因为这是数组的大小,但是我现在将使用“I和第二个变量
(来自@Korashen的答案)-它使用了一个额外的变量,但更可能反映预期的内容:填充数组将数组添加到该变量中,这是请求内容的最佳解决方案IMO@CarlosHeuberger完成了!谢谢你的想法。谢谢。但是在请求更改为“填充数组”之后,我倾向于使用
I
作为索引,并且第二个变量的值是双倍的…主要是Korashen的答案,所以我不会改变我的答案
for(int i = 1; i < 16; i <<=1){
    /*...*/
}
int limit = 100; // or whatever is requested

for (int i = 1; i <= limit; i *= 2) {
    System.out.println(i);
}