0

嘿伙计们,我被困在一个 for 循环中......这应该很容易,但由于某种原因,我想太多了!任何帮助都是极好的!

我正在尝试获取通过 %2 的术语总数并将它们打印出来,但是当我按照自己的方式尝试时,它会执行 11223344556677889910,我认为这很奇怪!我只想说(10)。

int counter = 0 

for (int i = 1; i < 20; i++) {
    if (i % 2 == 1) {
        counter += 1;
    }
    System.out.print(counter);
}

输出为 112233445566778899

不能使用数组或列表:\

4

7 回答 7

1

if条件似乎不正确,请尝试:(编辑:从counter1 开始并将 SOP 移出for循环)

int counter = 1 

for(int i=1;i<20;i++) {
if (i%2==0) //Match for 2
{ 
  counter+=1;
}
}
System.out.print(counter);
于 2013-10-16T02:47:07.740 回答
0

您需要在 for 循环之外打印计数器,System.out.print(counter); 并且看起来 i%2==1 不正确。您需要更改为 i%2==0

int counter = 0 

for(int i=1;i<20;i++) {
     if (i%2==0)
     {
         counter+=1;
     }
}
System.out.print(counter);
于 2013-10-16T02:46:07.297 回答
0

System.out.print 在您的 for 循环中,它会打印每次迭代。

如果您想要 10,请将调用移至 for 循环之外的 .print(),并将您的计数器从 1 开始,而不是 0。

于 2013-10-16T02:46:14.940 回答
0

在这种情况下,输出是正确的。counter您正在打印每次执行循环的总量。因此,对于 i=0,counter=1,对于 i=1,仍然是 counter=1,对于 i=2,计数器增加到 2,对于 i=3,计数器保持为 2,以此类推。

该代码工作正常,但其中有一个错误。移动循环的System.out.print(counter);外部,它应该可以正常工作。for还要记住将你的初始化counter为 1。

于 2013-10-16T02:49:34.607 回答
0

从 中取出该printfor loop,否则它将在每次迭代(显然)时打印计数,即 19 次。

int counter = 0;

for(int i = 1; i < 20; i++) 
{
    if (i % 2 == 1) counter++;
}
System.out.print(counter);
于 2013-10-16T02:53:15.053 回答
0

您已放入System.out.print(counter);for 循环。这就是原因。这将起作用:

int counter = 0; 
for(int i=1;i<20;i++) {
    if (i%2==1)
    { 
        counter+=1;
    }       
}
System.out.print(counter);
于 2013-10-16T02:54:57.700 回答
0
System.out.print(counter);

您应该将这行代码放在 for 循环之外,以避免打印出counter.

于 2013-10-16T03:13:16.673 回答