为什么我的Java;至于;循环是否立即结束?
我的第一个循环似乎正确地构建了数组,当我在第二个“for”循环中打印结果时,它立即终止。我看不出这个错误。代码如下:为什么我的Java;至于;循环是否立即结束?,java,arrays,loops,Java,Arrays,Loops,我的第一个循环似乎正确地构建了数组,当我在第二个“for”循环中打印结果时,它立即终止。我看不出这个错误。代码如下: public class CoinFlip { private static int Flip() { return (int)(2*Math.random()); //returns 0 or 1; 0=Tails,1=Heads } public static void main(String args[]) {
public class CoinFlip
{
private static int Flip()
{
return (int)(2*Math.random()); //returns 0 or 1; 0=Tails,1=Heads
}
public static void main(String args[])
{
int HEADS = 1;
int[] ConsecArray = new int[1000]; // the odds of ever having more than 1000 HEADS consecutively flipped are nil
int Sequencecounter = 0;
for (int i = 0; i < ConsecArray.length; i++)
{
if (Flip() == HEADS)
{
Sequencecounter++;
}
else // we have a TAILS
{
// Check sequence counter, if > 0, logging to do...
if (Sequencecounter > 0)
{
// Update length counters
int index = Sequencecounter - 1;
ConsecArray[index]++;
Sequencecounter = 0;
}
// consecutive tails, continue in loop
}
}
int j = ConsecArray.length;
System.out.println("Length" + " " + "NumberRunsOfHeads");
for (int k = 0; k == j; k++)
{
int index = k + 1;
String bucketName = Integer.toString(index);
String bucketValue = Integer.toString(ConsecArray[k]);
System.out.println(bucketName + " " + bucketValue);
}
}
}
公共类
{
私有静态int Flip()
{
return(int)(2*Math.random());//返回0或1;0=尾部,1=头部
}
公共静态void main(字符串参数[])
{
int头=1;
int[]consessionarray=new int[1000];//连续翻转超过1000个头部的几率为零
int Sequencecounter=0;
for(int i=0;i0,则记录要执行的操作。。。
如果(Sequencecounter>0)
{
//更新长度计数器
int索引=序列计数器-1;
数组[索引]+;
Sequencecounter=0;
}
//连续尾部,在循环中继续
}
}
int j=数组长度;
System.out.println(“长度”+“+”头数”);
对于(int k=0;k==j;k++)
{
int指数=k+1;
字符串bucketName=Integer.toString(索引);
字符串bucketValue=Integer.toString(数组[k]);
System.out.println(bucketName+“”+bucketValue);
}
}
}
第二个循环的第一次迭代:k是0
j是1000
测试k==j失败
循环永远不会运行更改
for (int k = 0; k == j; k++)
进入
for(int k=0;k
我想你的意思是k而不是for(int k=0;k==j;k++)
(这相当于如果(k==j)
)你想写或for(int k=0;k
,即循环j次,只要k==j
正确就不循环。我想你想要“k这是:
for (int k = 0; k == j; k++)
应该是这样的:
for (int k = 0; k < j; k++)
for(int k=0;k
不是答案,但在Flip()
中,您应该缓存一个随机实例并调用nextBoolean()
。很肯定会是“kfor (int k = 0; k == j; k++)
for (int k = 0; k < j; k++)