Boa Tarde, estou iniciando meus estudos em java e gostaria de tirar uma duvida…to escrevendo um programa para que o usuario entre com dois numeros, e o operador aritmetico.
Gostaria de saber oq tem de errado com o cógido:
Niggaz Flavors o comando “switch” só aceita números!
Kassiane_Pretti
Ele só aceita int e char.
Quando vc fala em numeros vc generaliza, assim abrange tb ao float, double… que não são aceitos pelo switch…
lgi2020
Ele só aceita int e char.
Quando vc fala em numeros vc generaliza, assim abrange tb ao float, double… que não são aceitos pelo switch…
8)
Exatamente!
Abraços.
niggazflavors
Humm entao a declaração do operador seria: char operador;
blz…essa parte eu entendi…mas no caso, como eu faria para recuperar isso no comando case, ja que ele aceita somente numeros? eu teria q pré-definir os case’s?
lgi2020
Niggaz Flavors:
Humm entao a declaração do operador seria: char operador;
blz…essa parte eu entendi…mas no caso, como eu faria para recuperar isso no comando case, ja que ele aceita somente numeros? eu teria q pré-definir os case’s?
Você pode usar o char no comando switch.
Na verdade, um char pode ser representando como um int.
lgi2020
Exemplo:
char teste = 'a';
switch(teste) {
case 'a':
...
}
Kassiane_Pretti
Niggaz Flavors:
Humm entao a declaração do operador seria: char operador;
blz...essa parte eu entendi...mas no caso, como eu faria para recuperar isso no comando case, ja que ele aceita somente numeros? eu teria q pré-definir os case's?
Por tras do char existe um inteiro, por isso não se deve falar que o switch aceita somente numeros e sim variaveis do tipo int e char.
A expressão do switch -> char, byte, short, int ou enum (Java 5);
A constante do case -> mesmos tipos da expressão com a condição (restrição) de a constante ser uma compile time constant.
lgi2020
mfjeng:
Em switch statements:
A expressão do switch -> char, byte, short, int ou enum (Java 5);
A constante do case -> mesmos tipos da expressão com a condição (restrição) de a constante ser uma compile time constant.
Realmente…
A frase mais correta para definir o que um switch aceita como parâmetro é “algo que possa ser avaliado como um int”.
Assim como o amigo mfjeng citou acima: char, byte, short, int ou enum…
Abraços a todos.
Kassiane_Pretti
Lenbrando que por trás dos elementos de um enum (Java 5) existe um inteiro. Cada elemento reseberá uma numeração (inteira) assim sua manipulação pode ser feita da mesma forma que se faz com as variaveis do tipo int…
lgi2020
KassiPretti:
Lenbrando que por trás dos elementos de um enum (Java 5) existe um inteiro. Cada elemento reseberá uma numeração (inteira) assim sua manipulação pode ser feita da mesma forma que se faz com as variaveis do tipo int…
8)
Exatamente!
Eu tinha me esquecido disso. :oops:
Por isso falei que só aceitava char e int…
Essa é a parte boa de participar de um fórum: mesmo quando esquecemos coisas tão triviais, temos sempre pessoas que nos ajudam a lembrar!
Abraços a todos.
niggazflavors
a parte da declaração eu entendi…e como eu recupero oq o uauario digitou como operador…no caso vou utilizar operador como char.
Como fazer para ele recuperar esse valor digitado, que no caso será, +, -, /, X?
Kassiane_Pretti
Captura assim:
operador =
(JOptionPane.showInputDialog("Qual a operação?")).toCharArray();
Eu não me lembro muito bem, mas acho que é assim…
Se algum souber pode corrigir…
lgi2020
Cara, eu tô meio sem tempo...
Mas tente o seguinte:
importjavax.swing.JOptionPane;publicclassTesteCalc{publicstaticvoidmain(Stringargs[]){doublenum1,num2,conta;conta=0;Stringentrada,saida,operador;entrada=JOptionPane.showInputDialog("Digite o 1º numero:");num1=Double.parseDouble(entrada);entrada=JOptionPane.showInputDialog("Digite o 2º numero:");num2=Double.parseDouble(entrada);operador=JOptionPane.showInputDialog("Qual a operação?");switch(operador.charAt(0)){case'+':{conta=num1+num2;break;}}JOptionPane.showMessageDialog(null,conta);}}
Abraços.
niggazflavors
KassiPretti, consegui de um jeito parecido, olha só: