在java中添加计数器

在java中添加计数器,java,class,count,towers-of-hanoi,Java,Class,Count,Towers Of Hanoi,我正在开发一个简单的HanioJava塔程序。 我有它给我的所有步骤的磁盘数量的用户输入 但是现在我被卡住了,我想在最后放一个计数器,给用户一个清晰的步骤数,而不是让他们全部数完 这是我的密码,如果你能帮我 加上一个计数,这将是伟大的 任何帮助都会很好 import java.util.Scanner; public class Hanoi{ public static void Han(int m, char a, char b, char c){ if(m>

我正在开发一个简单的HanioJava塔程序。 我有它给我的所有步骤的磁盘数量的用户输入

但是现在我被卡住了,我想在最后放一个计数器,给用户一个清晰的步骤数,而不是让他们全部数完

这是我的密码,如果你能帮我

加上一个计数,这将是伟大的

任何帮助都会很好

import java.util.Scanner;

public class Hanoi{

    public static void Han(int m, char a, char b, char c){
        if(m>0){
            Han(m-1,a,c,b);
            System.out.println("Move disc from "+a+" to "+b);
            Han(m-1,b,a,c);
        }
    }

    public static void main(String[]args){
        Scanner h = new Scanner(System.in);
        System.out.println("How many discs : ");
        int n = h.nextInt();
        Han(n, 'A', 'B', 'C');
    }
}

简单的方法是使用如下静态变量:

导入java.util.Scanner

public class Hanoi{

static int stepsCounter = 0; // new Code here.

public static void Han(int m, char a, char b, char c){
if(m>0){
stepsCounter++; // new Code here.
Han(m-1,a,c,b);
System.out.println("Move disc from "+a+" to "+b);
Han(m-1,b,a,c);
}
}

public static void main(String[]args){
Scanner h = new Scanner(System.in);
int n;
System.out.println("How many discs : ");
n = h.nextInt();
Han(n, 'A', 'B', 'C');
System.out.println("Steps : " + stepsCounter); // new Code here.
}
}

您还可以返回计数,而不是引入静态变量(除其他问题外,静态变量不是线程安全的):

public static int Han(int m, char a, char b, char c){
  int count = 0;
  if(m>0){
    count += Han(m-1,a,c,b);
    System.out.println("Move disc from "+a+" to "+b);
    count++;
    count += Han(m-1,b,a,c);
  }
  return count;
}

你可以做一个
静态int计数器=0和每当执行
System.out.println(“将光盘从“+a+”移动到“+b”)
Han(…)
中可以添加
计数器++指南针你能告诉我你将把它放在我上面的代码上的什么地方吗?我花了一段时间才开始工作,我宁愿不要再把它弄坏