Java 如何使用计数器
我试图创建一个计数器控制的while循环。目前,我很难让计数器在每次通过环路时增加1 我将代码设置为Java 如何使用计数器,java,Java,我试图创建一个计数器控制的while循环。目前,我很难让计数器在每次通过环路时增加1 我将代码设置为 int numberCounter = 0; // Numbers 0 through 10. String head1 = "Number: " + numberCounter; String head2 = " Multiplied by 2: " + numberCounter * 2; String head3 = " Multiplied
int numberCounter = 0; // Numbers 0 through 10.
String head1 = "Number: " + numberCounter;
String head2 = " Multiplied by 2: " + numberCounter * 2;
String head3 = " Multiplied by 10: " + numberCounter * 10;
int byTwo; // Stores the number multiplied by 2.
int byTen; // Stores the number multiplied by 10.
final int NUM_LOOPS = 11; // Constant used to control loop.
// This is the work done in the housekeeping() method
System.out.println("Numbers 0 through 10 multiplied by 2 and by 10" + "\n");
System.out.println(head1 + head2 + "\n");
System.out.println(head1 + head3 + "\n");
while (numberCounter != 10) numberCounter = numberCounter + 1;
System.out.println(head1 + head2 + "\n");
System.out.println(head1 + head3 + "\n");
但它只读取0值,并在一次传递后退出
我希望每次传球都能在柜台上加一个,但似乎都是0。我这样说是因为输出内容如下:
数字0到10乘以2和10
数字:0乘以2:0
数字:0乘以10:0
数字:0乘以2:0
数字:0乘以10:0,如注释中所述,确保计数器变量从0开始:
int numberCounter = 0;
while (numberCounter != 10) {
System.out.println(numberCounter);
numberCounter = numberCounter + 1; // or numberCounter++;
}
更新
发布完整代码后,似乎很明显,您希望整数的每次迭代都会更改分配给字符串的值,例如head2
&head3
这是错误的。在初始化这些字符串变量时,整数被转换为该变量内的字符串(因为使用了字符串串联)。要查看迭代整数的效果,可以在循环中添加以下println语句,例如:
while (numberCounter != 10) {
numberCounter = numberCounter + 1;
System.out.println(" Multiplied by 2: " + numberCounter * 2);
System.out.println(" Multiplied by 10: " + numberCounter * 10);
}
这应该行得通(假设
numberCounter
不是以值10开头),您需要向我们展示更多的代码,看看哪里出了问题。该代码应该行得通。你说“它只读取0值”是什么意思?是什么让你认为“但它只读取0值并在一次通过后退出”?使用option来澄清您的问题。这不是for
循环的确切用例吗?您似乎有这样的印象:当您有字符串head1=“Number:”+numberCounter
之后,您更改了numberCounter
的值,则head1
保存的数据也应更改/更新。事实并非如此。字符串的值在其创建时确定,并且从不更改。就像你有inta=1代码>之后,您编写intb=a代码>您的b
将保存其自己的值1副本,该值当时保存在a
中。即使以后将a
赋值为其他值,如a=3代码>b
仍将保留其自己的1副本。我确实将数字计数器初始化为0,我可能输入了错误的内容,或者问题可能是我使用的是在线编译器(工作计算机)。我刚刚编辑了我的问题以包含更多代码。这样做了!我仍在试图弄清楚这是怎么回事,但我想我明白了。一个小提示是,现在计数从1开始,所以我将numberCounter初始化为-1,这样我可以先乘以0。除此之外,这种方法是完美的!谢谢,@funkyjelly@Edwin查看整数的0值效果的正确方法是更改while循环中的顺序:首先进行打印(查看0值的结果),然后增加值。现在,首先递增该值,这样就不会看到0