我试图让每次运行程序时int计数增加。 ie:所以如果我运行程序9次,并且doMethod被调用9次,则count的值将是9.但是因为我必须将count初始化为= 0 count,所以在每次迭代方法时都会将自身重置为0。有办法解决这个问题吗?
public class Test {
public static void main (String[] args) {
Test test1 = new Test();
test1.doMethod();
}
public void doMethod () {
int count = 0;
count++;
System.out.println(count);
}
}
答案 0 :(得分:2)
不要将其作为本地方法,而是将其作为实例成员。
int count = 0;
-----
public void doMethod() {
count++;
System.out.println(count);
}
因此,在0
的每次通话中,它都不会重置为doMethod()
。
答案 1 :(得分:2)
如果您想在每次运行程序时增加计数,
counter
变量计数存储到文件或数据库表 答案 2 :(得分:1)
您想知道您的程序执行了多少次,包括当前执行。因此,为此,您需要将计数写入文件,或者您需要创建一个注册表,您可以放置计数器并增加程序通过程序执行的所有时间:
以下是将执行计数器存储到文本文件的示例。
class Test {
public static void main(String[] args) {
Test test1 = new Test();
test1.doMethod();
}
public int getCount() {
int count = 0;
try {
if ( !new File("d:\\myCount.txt").exists())
return 1;
else {
BufferedReader br = new BufferedReader(new FileReader(new File("d:\\myCount.txt")));
String s = br.readLine();
count = Integer.parseInt(s);
br.close();
}
} catch(Exception e) {
e.printStackTrace();
}
return count;
}
public void putCount(int count) {
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("d:\\myCount.txt")));
bw.write(Integer.toString(count));
bw.close();
} catch(Exception e) {
e.printStackTrace();
}
}
public void doMethod() {
int count = getCount();
System.out.println("You are running this program " + count + " number of times");
count++;
putCount(count);
}
}
答案 3 :(得分:1)
public class Arguments {
private static int i = 1;
// Arguments() {
// System.out.println("Main method thread constructor incremented for "+ i++ + " time" +"\n");
// }
public static void main(String[] args) {
new Arguments().method();
new Arguments().method();
new Arguments().method();
new Arguments().method();
new Arguments().method();
new Arguments().method();
}
private void method() {
System.out.println("Main method value incremented for "+ i++ + " time" +"\n");
}
}
答案 4 :(得分:0)
在实例级别或 class 级别声明int count = 0;
。
public void doMethod() {
int count = 0; // a new count variable is created each time doMethod() is called
count++;
System.out.println(count);
}
答案 5 :(得分:0)
如果在方法之外声明变量,则会记住状态。
解决方案可能是:
public class Test {
int count = 0;
public static void main(String[] args) {
Test test1 = new Test();
test1.doMethod();
test1.doMethod();
test1.doMethod();
}
public void doMethod () {
count++;
System.out.println(count);
}
}
这种方式count
在您调用new Test()
时创建,并且会被记住,直到Object被销毁。变量有一个叫做“范围”的东西。它们只能在其范围内访问,并且只存在于该范围内。因为您在count
方法中创建了void doMethod()
,所以它在其他任何地方都不存在。查看范围的简单方法是通过观察括号{ }
,您的变量仅存储在这些括号内。在我的解决方案中,count
的括号是整个Test
类的括号。因此,存储变量直到Object被销毁。
有关范围的更多信息:http://en.wikipedia.org/wiki/Scope_(computer_science)
我刚刚注意到您提到您希望在运行程序后保留count
值。您可以通过将其保存在数据库或文件中来完成此操作。但是,您可能意味着在运行count
方法后仍希望保留void doMethod()
值。我已经编辑了我的解决方案以执行void doMethod()
方法三次,因此您在运行该方法后会看到实际保留的值。
答案 6 :(得分:0)
使用该方法定义计数变量:
public class Test {
int count = 0;
public static void main(String[] args) {
Test test1 = new Test();
test1.doMethod();
}
public void doMethod() {
count++;
System.out.println(count);
}
}
答案 7 :(得分:0)
您可以声明static
变量count
count
将成为课程的一部分,而不是任何单个对象的一部分。
现在你只需要在每个方法调用中增加一个count变量:
public class Test {
// Set count to zero initially.
static int count = 0;
public static void main (String[] args) {
Test test1 = new Test();
test1.doMethod();
}
public void doMethod () {
// Every time the method calls, increment count.
count++;
System.out.println(count);
}
}
<强>更新强>
您也可以在每次通话后在doMethod ()
内打印计数
您可以将static
方法定义为类的一部分,以便在方法调用后获取静态变量count
的值:
class Test
{
// Set count to zero initially.
static int count = 0;
public void doMethod () {
// Every time the method calls, increment count.
count++;
}
static int getCount(){
// get latest value of count after method calls
return count;
}
public static void main (String[] args) throws java.lang.Exception
{
Test test1 = new Test();
test1.doMethod();
test1.doMethod();
test1.doMethod();
System.out.println(Test.getCount());
}
}
答案 8 :(得分:0)
public static int count;
public int get(){
count=count+1;
return count;
}
答案 9 :(得分:0)
//Put whatever you need here...
int count = 0;
public void doMethod() {
count++;
System.out.println(count);
}
//This is the decrement
public void dontMethod {
count--;
System.out.println(count);
}
希望这对您有所帮助。 :)