[code]import javax.swing.JOptionPane;
public class Calcula2 {
public double n1;
public double n2;
public double n3;
public double media;
public static char Teste(double n1,double n2,double n3)
{
double valor=0;
public static void main(String[] args) {
String aux;
int media=0;
Calcula2 cal;
cal = new Calcula2();
aux=JOptionPane.showInputDialog("Digite sua primeira nota: ");
cal.n1=Double.parseDouble(aux);
aux=JOptionPane.showInputDialog("Digite sua segunda nota: ");
cal.n2=Double.parseDouble(aux);
aux=JOptionPane.showInputDialog("Digite sua terceira nota: ");
cal.n3=Double.parseDouble(aux);
JOptionPane.showMessageDialog(null,"Sua nota é: "+media);
}
}
[/code]
Eu tenho que construir um metodo que receba três notas de uma aluno e retorne o conceito
Entre 3 e 0 conceito E
Entre 3 e 5 conceito D
Entre 5 e 7 conceito C
Entre 7 e 9 conceito B
Entre 9 e 10 conceito A
não dá muito certo dá empty character literal unclosed character literal :S
E nessa parte do método
public static char Teste(double n1,double n2,double n3)
{
dá missing return statement
Então não compila =(
Achei que fosse por causa do static, mas se tirar ele também não dá certo!!!
Obrigadinha romarcio"!
não entendi bem a dúvida, mas acho que pode ser uma dúvida sobre o tipo char
char não é string, não existem char null, vazio (’’), e char é somente UM caractere e nada mais, portanto, geralmente indicamos o vazio por uma única barra de espaço (’ ')
edit:
sobre o return: tente colocar os else-if’s e fechar com um else que dê retorno, e possivelmente usar uma variável char, pra facilitar o código
Mephy, o problema é que o netbeans não tá aceitando isso:
char ret = ' ';
Ele não aceita que esteja vazio entende? Mas valeu assim mesmo. gpellizzoni nem cheguei a vê exeções, mas descobri onde se encontra o erro:
Não deveria da erro na variavel conceito.
Deixa sem inicialização então char conceito;
O outro erro é porque você precisa colocar um return no método teste. Coloca depois do ultimo IF um return ' ';
Bom depois de muita ajudam descobri que eu estava fazendo todos os testes com o número 3, só que não tinha especificado em nenhum if, algo igual a 3 apenas maior ou menos :roll:
E naquela parte errada do conceito eu estava chamando apenas as variavéis vazias que eu declarei no começo.
Estava fazendo uma lógica que não existia :lol:
Mas programação né? É isso mesmo, obrigada pela ajuda glr. Ficou assim meu código compilando direitinho.
aaah, descobrir que tem que ter um return fora do if =s
Pelo menos o meu só deu certo assim.
[code]import javax.swing.JOptionPane;
public class Conceito2 {
public static char teste(double n1,double n2, double n3)
{
double valor=0;
char ret=’ ';
valor=(n1+n2+n3)/3;
if(valor>=0&&valor<3){
ret='E';
}
else if (valor >= 3 && valor < 5) {
ret='D';
}
else if(valor >= 5 && valor < 7)
{
ret='C';
}
else if(valor >= 7 && valor < 9)
{
ret='B';
}
else if(valor >= 9 && valor <= 10)
{
ret='A';
}
return ret;
aux= JOptionPane.showInputDialog("Digite sua primeira nota: ");
N1=Double.parseDouble(aux);
aux= JOptionPane.showInputDialog("Digite sua segunda nota: ");
N2=Double.parseDouble(aux);
aux=JOptionPane.showInputDialog("Digite sua terceira nota: ");
N3=Double.parseDouble(aux);
Conceito2 cal = new Conceito2();
Conceito=cal.teste(N1,N2,N3);// ficava apenas isso, *-*
A duvida é valida, mas vou te dar o conselho que o meu tutor me deu… lógica so vem com a prática, erro e acerto, este tipo de exercicio sera de extrema importancia para o seu futuro, tentar solucionalo sozinho é sempre bom (:
Outra forma pratica que vejo para a resolução deste exercício é retornar um void no lugar de um char…
E colocar a mensagem a ser impressa dentro do método teste.
Assim no lugar de