olá, primeiro desculpa pelo tanto de post com dúvidas, mas sabe como é, to começando agora e tal, as vezes uma resposta rápida de um usário experiente é melhor que ficar vasculhando a ducomentação por uma coisa taum simples…
vamos lá…
dada a função:
public static boolean funcaoLegal(int i) {
if (i == 1) {
return true;
}
return false;
}
a pergunta é a seguinte, se i for igual a 1 então ele vai retornar como true, dai ele saí do método? Ele sai sagrado sem dúvidas?
Pergunto porq métodos como esse poderiam ser mais exutos do jeito que está em vez de tratar desta maneira:
public static boolean funcaoLegal(int i) {
if (i == 1) {
return true;
} else {
return false;
}
}
Obs: se tiver algum erro de sintaxe, ignore, eu fiz direto aki no cruj
sim. quando ele encontrar um return ele sai do método…
Essa dúvida vc podia tirar ela, fazendo um código, colocando um Break Point no IF e debugando o código que você iria verificar que ele realmente sai do método
:lol:
danieldestro
O return pára a execução do método, fique tranquilo.
Salvo SE tiver um finally.
public boolean verificar( int i ) {
try {
// faz algo
if( i == 100 ) {
return true;
}
return false;
} catch( Exception e ) {
/* tratar */
} finally {
//sempre passa aqui
}
}
israelwm
Valeuzão pessoal.
renatosilva
Já li uma vez num livro que não é bom dar return espalhado no método, mas sim apenas um no final, usando uma variável temporária para guardar o valor. Isso garante que seu método não escape indevidamente. Acho que é por isso a dica do livro.
israelwm
é eu também li alguma coisa, acho que foi num livro de Delphi, tanto que se vc naum colocar um return (acho que no delphi e result) no bloco principal da função, ele dá uma mensagem de erro (o programa compila normal, mas nas mensagens de erros (hints) fica uma mensagem que está tendo algum problema com a função que naum retorna).
cv1
Alias, da pra condensar o seu exemplo em uma linha:
public boolean metodo(int i) {
return i == 1;
}
Muita gente tem ataques de panico quando ve codigo do tipo if(x) return true; else return false;, entao pode ser uma boa nao pegar essa mania
renatosilva
No delphi não tem muito a ver, o return é um comando que você fornece um valor. No Delphi você usa Result, que é uma variável implícita que não interrompe o método quando atribuída. Para interromper o Método usa-se Exit. Na prática o return do Java é um “Result := SomeValue; Exit;” do Delphi. O troço dá erro porque toda função deve retornar um valor.
cv:
Alias, da pra condensar o seu exemplo em uma linha:
public boolean metodo(int i) {
return i == 1;
}
Eu me amarro nisso! A sensação de condensar expressões assim é quase um esporte
israelwm
cv:
Alias, da pra condensar o seu exemplo em uma linha:
public boolean metodo(int i) {
return i == 1;
}
Muita gente tem ataques de panico quando ve codigo do tipo if(x) return true; else return false;, entao pode ser uma boa nao pegar essa mania :)
Pois é, uma das vantagens que vi em java é a praticidade, tipo imprimir uma variavel boolean, hehehe pascal era moh saco. tem uma coisa que vi que achei legal tb, são os operadores ternários:
Não seja tão genérico ao dizer que o Java tem praticidade, porque às vezes a linguagem Pascal pode ser mais prática do que o java.
@+ ps: essa coisa de bool = ((x == 144) || (y >= 144)) o Pascal também tem.
Thiago_Senna
Aiaiai!!!
Lá vem o Renato falar das mil maravilhosas que o pascal pode fazer…
Só não provoquem ele por que se não ele vai ensinar todo mundo como funciona um botão do Delphi com o maior número de riqueza de detalhes possível!!!
Saiam de perto que lá vém mais um show!!!
:lol: :lol: :lol:
israelwm
renato3110:
Não seja tão genérico ao dizer que o Java tem praticidade, porque às vezes a linguagem Pascal pode ser mais prática do que o java.
@+ ps: essa coisa de bool = ((x == ) || (y >= 144)) o Pascal também tem.
Sério como é em Pascal então? eu naum me lembro de usar isso em Pascal (Pascal puro), mas acho Delphi tb naum tinha.
renatosilva
Israel, é igual, só muda a sintaxe:
BooleanVar:=(X=144)or(Y<>144)
Pelo menos no Delphi eu uso isso direto.
israelwm
Aa soh, isso sim, mas tava dizendo a parada Ternário (naum sei daonde q eu li esse nome) mas blz, de qualquer modo vou ter q ficar programando aqui na Jaca mesmo.
renatosilva
A parada do interrogação? Ah isso não tem, nunca vi. Mas pô todo mundo fala que isso é uma porcaria, faz o código ficar tosco!!!
V
Vegetto
Depende né? Tem situações que é útil… em todo caso, na minha opinião, só você ver se o código ficará claro e mais simples de entender, se estiver, então beleza… aliás, isso vale pra tudo, quase sempre
israelwm
Eu gostei do “ternários”, ou seja lá que nome deram, as vezes é bom, qndo são atribuidos valores a uma variavel somente com uma condição boolean
Thiago_Senna
Humm… operador ternário???
Ele é legal para quem gosta de escrever métodos pequenos, pois esse operador apesar de feio ocupa pouco espaço…
Mas o chato dele é que ele é chatinho de entender… um leigo provavelmente não se familizarizará com ele tão facilmente! Eu mesmo ficou perdido na hora de usá-lo!!!
israelwm
Thiago Senna:
Humm… operador ternário???
Ele é legal para quem gosta de escrever métodos pequenos, pois esse operador apesar de feio ocupa pouco espaço…
Mas o chato dele é que ele é chatinho de entender… um leigo provavelmente não se familizarizará com ele tão facilmente! Eu mesmo ficou perdido na hora de usá-lo!!!
é, é verdade, ele deixa o codigo meio confuso mesmo, qndo tenho q usar eu copio de um lugar q sei q estah certo ehheheheeh