如何在If语句中的If语句中调用方法?

时间:2015-12-29 18:55:57

标签: java towers-of-hanoi

这是我的代码:

import java.util.Scanner;

class test {
  public static void main(String[]args){
    Scanner in=new Scanner(System.in);


    System.out.print("Enter disc to move: ");
    int disc=in.nextInt();
    System.out.print("Enter destination: ");
    char dest=in.next().charAt(0);

    if ((disc==1)&&((dest=='B')||(dest=='b'))){
      AAB(disc,dest);
      {
        printM(disc, dest);
        {
          if ((disc==2)&&((dest=='C')||(dest=='c')))
            ACB(disc, dest);
        }
      }
    }
  }

  public static void AAB(int disc, char dest){
        System.out.println("A: 32");
        System.out.println("B: 1");
        System.out.println("C: ");
        System.out.println(" ");
  }
  public static void ACB(int disc, char dest){
        System.out.println("A: 3");
        System.out.println("B: 1");
        System.out.println("C: 2");
        System.out.println(" ");}
  }
}

我的输出如下:

Enter disc to move: 1
Enter destination: b
A: 32
B: 1
C: 

Enter disc to move: 2
Enter destination: c

现在,我的问题是当我输入2作为我的磁盘而c作为我的目的地时,它不会打印我的输出。我为该条件制定了一个方法,即ACB。 有人可以用我的语法帮助我吗?

我将这些代码用于我的任务(河内之塔)

1 个答案:

答案 0 :(得分:2)

永远不会达到嵌套if语句中的代码,disc等于 1 2 。变化

if ((disc==1)&&((dest=='B')||(dest=='b'))){
    AAB(disc,dest);
    {
    printM(disc, dest);
       {
        if ((disc==2)&&((dest=='C')||(dest=='c')))
            ACB(disc, dest);
        }
    }
}

if ((disc==1)&&((dest=='B')||(dest=='b'))){
    AAB(disc,dest);

    printM(disc, dest);
}
else if ((disc==2)&&((dest=='C')||(dest=='c')))
    ACB(disc, dest);
}