Boa Tarde Pessoal, sou novo no universo java, estou no 2º período de sistema.
A dúvida é o seguinte.
Preciso validar um campo onde checa se o apartamento contém morador ou não. No caso do meu raciocínio quero que quando ele retornar o valor existente no meu array, ele entra em loop e retorna a pedir o número do apê.
Olha o código .
System.out.println("\n :::COOCAR MORADOR EM APARTAMENTO:::\n");Moradormora=newMorador();booleanmoradorNoApe=false;
for(intj=0;j<apartamentos.length;j++){if(apartamentos[j].getNumero()==reservaAp){validaApe=apartamentos[j].getNumero();if(apartamentos[j].getNumero()!=validaApe){System.out.println("*** APARTAMENTO JÁ CONTÉM MORADOR ***");return;}else{}}}
em especial eu não utilizei minha variável boolean, não percebi necessidade no momento.
E por falta de conhecimento eu não sei se o comando Return pode fazer isso, deduzi pela tradução kkk …
eu costumo usar o “do while” para tipos de validações, mas se caso o return é capaz, por favor, me deem dicas !
publicintdobro(intvalor){return2*valor;}// usointvalor=dobro(4);// valor agora tem 8
2 se o metodo não tem tipo ( void ). ai vc interrompe o metodo.
util se vc quer terminar uma sequencia logica, interromper varios loops, etc.
no seu exemplo, o return interrompe todo o metodo.
se vc quer interromper um loop, vc tem uma palavra reservada chamada break; isso vai interromper um loop mais ‘interno’. se vc tem mais de um loop e quer terminar tudo vc pode usar um LABEL mas isso é uma outra historia.
veja se no seu caso um break não faz mais sentido.
B
brunoloirim
Primeiramente @peczenyj Quero te agradecer por responder e tirar dúvida em relação ao “return”.
Bom vamos ao caso.
Eu fiz a validação de trocar o método return para break e ele consequentemente pula para o método de baixo que no meu caso seria pedir o nome do morador.
Bem, estou com um código bastante aprendiz e estou trabalhando para melhorá-lo.
Veja o código por mais completo.
staticpublicvoidcolocarMoradoremApartamento(){System.out.println("\n :::COOCAR MORADOR EM APARTAMENTO:::\n");Moradormora=newMorador();booleanmoradorNoApe=false;
for(intj=0;j<apartamentos.length;j++){if(apartamentos[j].getNumero()==reservaAp){validaApe=apartamentos[j].getNumero();if(apartamentos[j].getNumero()!=validaApe){System.out.println("*** APARTAMENTO JÁ CONTÉM MORADOR ***");break;}else{}}}for(inti=0;i<apartamentos.length;i++){if(apartamentos[i].getNumero()==reservaAp){System.out.print("Digite o nome do novo morador: ");mora.setNome(leitura.nextLine());
//VALIDA O CODIGO JA EXISTENTEintvalidacao;System.out.print("Digite o código do Sr(a). "+mora.getNome()+": ");mora.setCodigo(Integer.parseInt(leitura.nextLine()));validacao=mora.getCodigo();for(intj=0;j<apartamentos.length;j++){if(apartamentos[i].getMorador()!=null){if(apartamentos[i].getMorador().getCodigo()==validacao){System.out.println("*** Código já existente ***");break;}else{
}}}System.out.print("Digite a idade: do Sr(a). "+mora.getNome()+": ");mora.setIdade(Integer.parseInt(leitura.nextLine()));System.out.print("O(a) Sr(a)"+mora.getNome()+" é casado(a) ?: ");mora.setCasado(Boolean.parseBoolean(leitura.nextLine()));if(mora.isCasado()==true){System.out.print("Qual o nome da marido ou esposa?: ");mora.setParceiro(leitura.nextLine());}System.out.print("Digite a Quantidade de filhos: ");mora.setQuantFilhos(Integer.parseInt(leitura.nextLine()));apartamentos[i].setMorador(mora);moradorNoApe=true;System.out.println("\n ***MORADOR CADASTRADO COM SUCESSO***\n");}}}
staroski
Seu código não “pula” de um método para outro.
Ele simplesmente interrompe um laço para entrar em outro
B
brunoloirim
Eai @staroski, vejo você direto respondendo as duvidas do pessoal ai, parabéns ai pela dedicação ai sempre.
Sim, básicamente essa é a lógica do código né.
Mas vamos a minha questão !
Preciso validar o campo de numeração do apartamento se caso ele já conter algum morador, ele repete o processo de busca do número do apartamento .
Tem alguma dica valiosa para me fornecer ?
tipo um “do while” ou algum laço de repetição que faça essa validação !?
staroski
Segue exemplo hipotético:
publicclassExemplo{privatestaticfinalScannerIN=newScanner(System.in);publicstaticvoidmain(String[]args){Exemploexemplo=newExemplo();exemplo.colocarMoradoremApartamento();}privatefinalApartamento[]apartamentos=// sei lá como você inicializa seus apartamentos */publicvoidcolocarMoradoremApartamento(){System.out.println("Colocar morador em apartamento");Apartamentoapartamento=selecionaApartamento();Moradormorador=cadastraMorador();apartamento.setMorador(morador);}privateintcadastraCodigo(Stringnome){intcodigo=-1;do{System.out.print("Digite o código do Sr(a). "+nome+": ");codigo=Integer.parseInt(IN.nextLine());}while(!codigoValido(codigo));returncodigo;}privateMoradorcadastraMorador(){System.out.print("Digite o nome do novo morador: ");Stringnome=IN.nextLine();intcodigo=cadastraCodigo(nome);System.out.print("Digite a idade: do Sr(a). "+nome+": ");intidade=Integer.parseInt(IN.nextLine());System.out.print("O(a) Sr(a)"+nome+" é casado(a) ?: ");booleancasado=Boolean.parseBoolean(IN.nextLine());Stringparceiro=null;if(casado){System.out.print("Qual o nome da marido ou esposa?: ");parceiro=IN.nextLine();}System.out.print("Digite a Quantidade de filhos: ");intfilhos=Integer.parseInt(IN.nextLine());Moradormorador=newMorador();morador.setNome(nome);morador.setCodigo(codigo);morador.setIdade(idade);morador.setCasado(casado);morador.setParceiro(parceiro);morador.setQuantFilhos(filhos);System.out.println("Morador cadastrado com sucesso");returnmorador;}privatebooleancodigoValido(intcodigo){for(inti=0;i<apartamentos.length;i++){Moradormorador=apartamentos[i].getMorador();if(morador!=null&&morador.getCodigo()==codigo){System.out.println("*** Código já existente ***");returnfalse;}}returntrue;}privateApartamentoselecionaApartamento(){while(true){System.out.print("Qual apartamento deseja reservar ?: ");intnumero=Integer.parseInt(IN.nextLine());Apartamentoapartamento=validaApartamento(numero);if(apartamento!=null){returnapartamento;}System.out.println("Apartamento ocupado!");}}privateApartamentovalidaApartamento(intnumero){for(inti=0;i<apartamentos.length;i++){if(numero==apartamentos[i].getNumero()&&apartamentos[i].getMorador()==null){returnapartamentos[i];}}System.out.println("Apartamento invalido!");returnnull;}}