Mostrar os passos para resolver o problema das Torres de Hanoi

3 respostas Resolvido
java
V

Olá, estou com o seguinte código, porém a classe para teste não está funcionando:

public class AlgesdUm{
      public static void Hanoi (int n, char a, char b, char c) {
         if (n>0) {
         Hanoi (n-1, a, c, b);
         System.out.println("Passar disco" + n +"da haste" + a + "para a haste" + c);
         Hanoi (n-1, b, a, c);
         }
      }   
}

public class TesteA {
   public static void main (String args []) {
      //System.out.println(AlgesdUm.Hanoi(3, 'a', 'c', 'b'));
   }
}

Dá o seguinte erro: TesteA.java:4: error: ‘void’ type not allowed here
Detalhe: Estou utilizando JGrasp

Alguém pode me ajudar??

3 Respostas

R
Solucao aceita

Vc quer printar um método que não retorna nada.

//Não tem retorno
public void

//Retorna uma String
public String

E assim sucessivamente…


E vc já colocou um System.out.println dentro do método:

Pode chama-lo assim:

public static void main(String args[]) {
    Hanoi(3, 'a', 'c', 'b');
}
V

MUUUUUUUUITO obrigada, de verdade! ainda não entendi ao certo pq o hanoi não pode ser sot. Mas deu certo, grata!

R

é pq um método vazio não tem retorno.

Não tem como vc printar isso:

private VOID teste(){
   System.out.println("Meu nome é Vidii");
}

System.out.println(teste()); //vai dar erro

O que você pode fazer com esse método acima é apenas chama-lo:

teste(); //não vai dar erro

Agora se vc quer imprimir um valor chamando esse método, vc precisa adicionar um retorno à ele, exemplo:

private String teste(){
    return "Meu nome é Vidii";
}

Aí sim vc pode imprimir:

System.out.println(teste());

Deu pra entender melhor?

Criado 5 de março de 2020
Ultima resposta 5 de mar. de 2020
Respostas 3
Participantes 2