class desafio
{
public static void main(String args[]) throws java.io.IOException
{
char d;
do
{
System.out.println("selecione um dos sinais prara efetuar uma conta: ");
System.out.println("1 -");
System.out.println("2 +");
System.out.println("3 *");
System.out.println("4 /");
d=(char)System.in.read();
} while(d < '1' || d > '5');
int a,b,s;switch(d)
{
case '1':
{
System.out.println("Digite o valor 1:");
java.util.Scanner s = new Scanner(System.in);
a = s.nextInt();
System.out.println("Digite o valor 2:");
b = input.nextint();
System.out.printf("O Resultado é: " +(a-b));
break;
}
case '2':
{
s=0;
System.out.print("digite um numero: ");
a=(int)System.in.read();
System.out.print("digite outro numero: ");
b=(int)System.in.read();
System.out.print((s=a+b)+"\n");
}
break;
case '3':
{
s=0;
System.out.print("digite um numero: ");
a=(int)System.in.read();
System.out.print("digite outro numero: ");
b=(int)System.in.read();
System.out.print((s=a*b)+"\n");
}
break;
case '4':
{
s=0;
System.out.print("digite um numero: ");
a=(int)System.in.read();
System.out.print("digite outro numero: ");
b=(int)System.in.read();
System.out.print((s=a/b)+"\n");
}
break;
}
}
}
Preciso de ajuda pra resolver problemas com System.in.read()
eu preciso faze uma calculadora mais nao to conseguindo le so numeros vc poderiam mi dar uma ajuda
2 Respostas
Não entendi direito sua pergunta, mas os breaks finais estão fora do case.
O que você fez no case 1 está correto, pq vc não usou nos demais cases?
Scanner scanner = new Scanner(System.in);
try{
int numero = scanner.nextInt();
}catch(NumberFormatException e){/*aqui pega exceções quando o user não digita número.*/
System.out.println("Digite um valor Válido!");
}
Outra coisa MUITO IMPORTANTE
Você não precisa TODA vez pedir os números, independente da operação vc pode pedir os números, ou seja, coloque os dois pedidos de número fora(antes) do switch.
Até mais.

Criado 12 de maio de 2011
Ultima resposta 13 de mai. de 2011
Respostas 2
Participantes 3