classExemplo
{
doublealgumaCoisa (doublex)
{
.....
//essaparteéqueinteressaif ((x > 1) || (x < 0))
System.out.println ("Esse valor não é válido.\nDigite um valor entre 0 e 1.");
if((x >= 0) && (x <= 1))
{ //daíeuincluoumlaçowhile (.....)
{
....
....
}
}
//aquiquetádandoproblemareturnalgumaCoisa;
}
}
A minha dúvida é a seguinte:
Eu preciso que o programa reconheça somente valores entre 0 e 1; se o valor digitado for menor que zero ou maior do que 1, então precisa mandar uma mensagem de erro… se o número for entre 0 e 1, então vai entrar no laço para calcular o que eu quero…
Só que tem o return… se a pessoa digita um valor menor do que 0 ou maior do que 1, ele vai imprimir e retornar alguma coisa… como eu faço para que isso não aconteça? Fazer um jeito que só retorne o valor quando o valor digitado for entre 0 e 1 e só imprima quando o valor for entre 0 e 1?
Valeu
classExemplo
{
doublealgumaCoisa (doublex)
{
.....
//essaparteéqueinteressaif ((x > 1) || (x < 0))
System.out.println ("Esse valor não é válido.\nDigite um valor entre 0 e 1.");
if((x >= 0) && (x <= 1))
{ //daíeuincluoumlaçowhile (.....)
{
....
....
}
}
//aquiquetádandoproblemareturnalgumaCoisa;
}
}
A minha dúvida é a seguinte:
Eu preciso que o programa reconheça somente valores entre 0 e 1; se o valor digitado for menor que zero ou maior do que 1, então precisa mandar uma mensagem de erro… se o número for entre 0 e 1, então vai entrar no laço para calcular o que eu quero…
Só que tem o return… se a pessoa digita um valor menor do que 0 ou maior do que 1, ele vai imprimir e retornar alguma coisa… como eu faço para que isso não aconteça? Fazer um jeito que só retorne o valor quando o valor digitado for entre 0 e 1 e só imprima quando o valor for entre 0 e 1?
Valeu :D
Bom Dia!!!
Amigo, você pode colocar o return dentro do laço do segundo if ou então qdo entrar no primeiro controle de seleção “if” você dá um “return;” vai lhe retornar um valor nulo e cancelar o processo.
Olá Jeferson… eu fiz isso, só que dá erro de sintaxe… aqui fala que precisa retornar alguma coisa…
C
CandaharPJ
"italobraz":
Só mudar o lugar do return... pra dentro do if......
ai só vai retornar qdo o valor digitado estiver entre 0 e 1
olha a mudança no código abaixo!!!
classExemplo
{
doublealgumaCoisa (doublex)
{
.....
//essaparteéqueinteressaif ((x > 1) || (x < 0))
System.out.println ("Esse valor não é válido.\nDigite um valor entre 0 e 1.");
if((x >= 0) && (x <= 1))
{ //daíeuincluoumlaçowhile (.....)
{
....
....
}
returnalgumaCoisa;
}
//aquiquetádandoproblema
}
}
Olá Italobraz
Eu fiz isso, só que aí que tá o problema... se eu coloco o return dentro do segundo if, vai precisar de outro return por causa do método double... entende? Então vai retornar um return do segundo if e vai precisar um return para o método double...
I
italobrazPJ
é q naum sei o funcionamento do programinha…
o q o JAVATECO disse naum funcionou tbm???
C
CandaharPJ
“JavaTeco”:
Faça um do-while para que só continue caso o valor esteja entre 0 e 1
Com o Moderador eu não discuto… :amo:
Sei lá, eu tentei fazer isso mas não funcionou… mas com certeza eu que estou errado :lol:
O problema acho que é o método… chamei o método de double, então precisa de um return, certo? :sentido:
Valew
I
italobrazPJ
é mais fácil pra gente poder resolver a sua dúvida…
vc postando o q o programa tem q fazer… e a máximo possivel q vc poder do código…
qto ao método AlgumaCoisa
vc declarou como double algumaCoisa (double x)
por causa desse double, em negrito, o método tem q retornar alguma valor no tipo double
C
CandaharPJ
classCalcular
{
doubleln (doubleumMaisL) // Métodoparacalcularologaritmoneperiano
{
doubleepsilon = 1.0e-8; // valordaprecisãodoubleL = umMaisL - 1;
intw = 1;
doubletermo = L;
doubleln = termo;
if (umMaisL > 1 || umMaisL < 0) // Nãoéválidoparanúmerosmenoresdoquezeroemaioresdoqueum
{
System.out.println ("Esse valor não é válido.\nDigite um valor entre 0 e 1.");
}
if(umMaisL >= 0 && umMaisL <= 1) // Válidaparanúmerosentrezeroeum.
{
while (termo * termo > epsilon * epsilon) // Evitaacomparaçãodeumtermonegativocomoepsilon
{
w = w + 1;
termo = -termo * L * (w - 1)/ w;
ln = ln + termo;
}
}
returnln;
}
Eu sei que é um código bem escroto, mas só funciona pra números entre 0 e 1… É uma série de Taylor… mas isso em si não é o importante…
Por exemplo, se eu coloco o número 2, então ele imprime que o número não é válido e ele retorna o ln. Mas não é pra retornar nada, só imprimir…
Pra números entre 0 e 1 tá funcionando…
Não sei se melhorou ou piorou depois desse código… :lol:
Valew
J
JavaTecoPJ
“Candahar”:
“JavaTeco”:
Faça um do-while para que só continue caso o valor esteja entre 0 e 1
Com o Moderador eu não discuto… :amo:
Sei lá, eu tentei fazer isso mas não funcionou… mas com certeza eu que estou errado :lol:
O problema acho que é o método… chamei o método de double, então precisa de um return, certo? :sentido:
Valew
Nem fala assim… todo mundo aqui é igual… e outra… eu posso errar tb… e podem me corrigir…
É o seguinte… do jeito que vc esta requerendo fazer, não é a melhor solução… faça o seguinte… faça a validação fora do método… ou seja, o valor que irá ser passado como parâmetro deverá estar entre 0 e 1… dentro do método faça uma verificação, como vc estava fazendo… caso esteja fora do limite, gere uma exceção. Essa exceção só informará que o limite deve entre 0 e 1. Mas faça a validação fora do método, por exemplo, com o código que eu te passei anteriormente… Ai vc pode ser perguntar… pra que gerar uma exeção se eu já vou entrar com o valor validado… é que se alguém for usar este método terá como saber qual o limite… blz?
C
CandaharPJ
Valeu cara… eu ainda não consegui fazer mas estou pensando em como fazer isso…
Só mais uma perguntinha…
Como eu posso verificar se o número digitado está entre 0 e 1 ANTES de entrar no método? Não entendi isso… :sentido: