只是为了练习,我试图在两种不同的情况下运行以下代码,最初我认为它们都可以工作,但是当我运行程序时,一个有效,一个无效,这是有效的代码
public class Test1
{
public static void main(String args[])
{
int counter = 0;
int number = 1;
do{
System.out.println(number);
number++;
counter++;
}while(counter<20);
} }
O/P : 1 2 3 ... {最多打印 19}
这是没用的
public class Test2
{
public static void main(String args[])
{
int counter = 0;
do{
int data = 0;
System.out.println(data);
data++;
counter++;
}while(counter<20);
} }
O/P : 0 0 0 0 ...{最多打印 19 次}
最佳答案
因为在每次迭代中,您的数据字段将首先设置为 0,然后打印它,然后++
public class Test2
{
public static void main(String args[])
{
int counter = 0;
do{
int data = 0; // declare a new data field and initialize to 0
System.out.println(data); // display zero
data++; // data now is 1
counter++;
}while(counter<20);
}
}
关于java - 在 do{} 中初始化的变量不递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39654093/