Return em 2 atributos no mesmo método

Bom dia galera, bom logo abaixo vou colocar meu código mais pelo que estou vendo o erro que me aparece no java é “unreachable statement” pelo que me parece me corrijam se eu estiver errado mais é que no mesmo método no caso o “getdadosnutri” não é possível dar return em dois atributos no mesmo método bom vendo o código vocês irão entender melhor (obs. parte do código destacado em vermelho, botei todo o código caso o erro não seja onde estou prevendo):

[code]import java.util.;
import java.sql.
;
import java.io.*;

public class merenda
{
private String crm;
private String nomenutri;
private String nomeesc;
private String endesc;
private String nomediresc;
private String condcozinha;
private String diadsem;
private String nomeprato;

public String getdadosnutri ()
{
return crm;
return nomenutri;
}
public String getdadosesc ()
{
return nomeesc;
return endesc;
return nomediresc;
}
public String getcondcozinha ()
{
return condcozinha;
}
public String getdiadsem ()
{
return diadsem;
}
public String getnomeprato ()
{
return nomeprato;
}
public void entra_dadosnutri (String crmid,String nnutri)
{
crm=crmid;
nomenutri=nnutri;
}
public void entra_dadosesc (String nesc,String eesc,String ndiresc,String concoz,String nprato,String ddsem)
{
nomeesc=nesc;
endesc=eesc;
nomediresc=ndiresc;
condcozinha=concoz;
nomeprato=nprato;
diadsem=ddsem;
}
public String gerarelatorio ()
{
return nomeesc;
return endesc;
return nomediresc;
return crm;
return nomenutri;
}
}[/code]

Esse é um jeito de retornar dois atributos da classe:

String[] valores = new String[] {crm,nomenutri}; //Aqui você coloca os valores para retorno, separados por virgula return valores;

1 curtida

Isso não pode ser feito em java, do jeito que vc esta fazendo não é possivel, vc está retornando um string mas isso não é possivel ter varios retorno diretos sem nenhuma condição.

Isso não existe

public String getdadosnutri () { return crm; return nomenutri; }

Isso é o correto

[code]public String getdadosnutri ()
{
if (condição 1) {
return crm;
}
return nomenutri;
}

ou

public String getdadosnutri ()
{
if (condição 1) {
return crm;
}
else if (condicao 2) {
return nomenutri;
}
else {
return outravariavel;
}
}

[/code]

Para vc retornar varios atributos tem que trabalhar e retornar HashMap

public HashMap<String, String> getdadosnutri () 
HashMap<String, String> maps = new HashMap<String, String>();
{ 
if (condição 1) {
  maps.put("crm", "valor1"); 
}

if (condição 2) { {
  maps.put("nomenutri", "valor2"); 
}

return maps;

obrigado alexafe, é que no caso essa seria um classe secundaria a classe principal, então pensei que fosse possível usar 2 return em um mesmo método esse o caso que seria para imprimir os resultados finais a saída dos dados, um que seria os dados da nutricionais e ou outro da escola, mais obrigado era mais pra tirar essa duvida. Outra pergunta é possível executar 2 return em um mesmo método se não forem tipo String as variáveis ou mesmo sendo qualquer tipo de variável não é possível 2 return em um mesmo método?

Igual eu te falei vc só pode ter um return por vez, se vc quer retornar varios valores de uma vez, vc usa o HasMap ou retona um objeto com quantos atributos vc quizer

A questão não são dois returns no mesmo método, mas sim essa forma com dois returns em sequência, pois executado o primeiro return o o ponteiro de execução volta para o método chamador e nunca executa o segundo return, daí a mensagem do compilador: “unreachable statement”, declaração fora de alcance.

Sim amigo nao pode ser feito desse jeito ai não é assim que programa em java por isso da erro

Você só pode retornar um dado por vez, de um único tipo, que deve ser o mesmo tipo de retorno do método. Se você tem dados da Escola, então provavelmente sua modelagem deve se adequar e você deve criar uma classe Escola com seus próprios atributos.

Uma dica não relacionada a sua dúvida mas a programação Java em geral, CORRIJA IMEDIATAMENTE seus nomes de classes, métodos e atributos para a convenção de programação Java. Qualquer coisa, tenho o code convention na minha assinatura, se não, 30 segundos de Google te ajudam a encontrar.

Abs [] e sucesso nos estudos.

muito obrigado adriano e alex estou pesquisando aqui sobre regras e convenções de programação, bastante interessante vou terminar de pesquisa-las e estuda-las e com certeza irei seguir.