这是我的代码:
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
。
有人可以用我的语法帮助我吗?
我将这些代码用于我的任务(河内之塔)
答案 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);
}