Como chamar um metodo dentro dele mesmo

Galera esse metodo deveria receber uma string de entrada e testar se essa string e igual a “bye”,
e enquanto fim for false o usuario deve informa uma nova string…Porem ele entra em lup infinito…
ME AJUDEM POR FAVOR…

public void start(String info)
 {
     boolean fim = false;
     printBoasVindas();
     while(!fim)
     {
         String entrada= leia.getEntrada(info);
         
         if( entrada.startsWith("bye"))
         { fim=true;
             System.out.println("obrigado");
            }
            else
            {
                String respondendo  = resposta.geraResposta();
                System.out.println(respondendo);
              
              }
       }

Procure debugar o código e verifique o valor que está na variável entrada!

[quote=jhon_jhon]Galera esse metodo deveria receber uma string de entrada e testar se essa string e igual a “bye”,
e enquanto fim for false o usuario deve informa uma nova string…Porem ele entra em lup infinito…
ME AJUDEM POR FAVOR…

[code]
public void start(String info)
{
boolean fim = false;
printBoasVindas();
while(!fim)
{
String entrada= leia.getEntrada(info);

     if( entrada.startsWith("bye"))
     { fim=true;
         System.out.println("obrigado");
        }
        else
        {
            String respondendo  = resposta.geraResposta();
            System.out.println(respondendo);
          
          }
   }

[/code] [/quote]

verifique qual valor a variavel “entrada” esta recebendo, provavelmente não esta sendo a esperada

o problema que esta ocorrendo é como atribuir um novo valor do tipo String à variavel “entrada” …
sem interromper a execução do metodo start();

OBS: o objetivo é que o usuario possa atribuir novos valores a variavel “entrada” e comparar se o que foi digitado é igual a “bye” tudo isso denttro do while…
NAO CONSIGO MUDAR O VALOR DA VARIAVEL “INFO”…

public void start(String info)  
{  
     boolean fim = false;  
     printBoasVindas();  
     while(!fim)  
     {  
         String entrada= leia.getEntrada(info);  
           
         if( entrada.equals("bye"))  
         { fim=true;  
             System.out.println("obrigado");  
            }  
            else  
            {  
                String respondendo  = resposta.geraResposta();  
                System.out.println(respondendo);  
                
              }  
       }  

Por favor, EVITE AS LETRAS MAIÚSCULAS!

Primeiramente, é impossível mudar o valor da variável info. Primeiro, porque o parâmetro foi passado por valor, ou seja, você recebeu uma cópia da referência que aponta a a String info. Fazer

info = "Olá!"; 

Iria alterar o valor de info dentro do método, mas não fora.

Segundo, porque Strings são objetos imutáveis. Não há como alterar seu valor depois de criados.

Por último, e não menos importante, porque nesse código que você postou, você sequer tentou alterar o valor da variável info. Ou seja, mesmo que tudo o que falei acima fosse possível, o valor ainda não seria alterado por esse código.

Agora, fica muito difícil te ajudarmos a corrigir seu problema, se você não postar a classe do objeto leia, em especial, o método getEntrada. Mas chutando, eu diria que o certo seria fazer isso aqui:

info = leia.getEntrada(info); if( info.startsWith("bye"))