Quatro OperaçõesJava
Estou criando um programa que receba 2 números e após isso receba um comando do usuário selecionando uma das quatro operações. Mas recebo o seguinte erro: (unreported exception java.io.IOException; must be caught or declared to be thrown)
Na linha: ( op = (char)System.in.read(); )
Obs.: Sei que a função divisão irá me retornar o resto e não o resultado em si.
Segue o código:
import java.util.Scanner;
public class quatroperacoes {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int num1, num2;
char op;
System.out.print("Digite o primeiro número: ");
num1 = entrada.nextInt();
System.out.print("Digite o segundo número: ");
num2 = entrada.nextInt();
Scanner ler = new Scanner(System.in);
System.out.print("Selecione a operação: 1 = Soma | 2 = Subtração | 3 = Multiplicação | 4 = Divisão");
op = (char)System.in.read();
if (op == '1'){
}
System.out.println(num1 + " + " + num2 + " = " + (num1 + num2) );
if (op == '2'){
}
System.out.println(num1 + " - " + num2 + " = " + (num1 - num2) );
if (op == '3'){
}
System.out.println(num1 + " * " + num2 + " = " + (num1 * num2) );
if (op == '4')
System.out.println(num1 + " / " + num2 + " = " + (num1 / num2) );
else
System.out.println("Número incorreto !");
}
}
Desde já, grato.
Na linha: ( op = (char)System.in.read(); )
Obs.: Sei que a função divisão irá me retornar o resto e não o resultado em si.
Segue o código:
import java.util.Scanner;
public class quatroperacoes {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int num1, num2;
char op;
System.out.print("Digite o primeiro número: ");
num1 = entrada.nextInt();
System.out.print("Digite o segundo número: ");
num2 = entrada.nextInt();
Scanner ler = new Scanner(System.in);
System.out.print("Selecione a operação: 1 = Soma | 2 = Subtração | 3 = Multiplicação | 4 = Divisão");
op = (char)System.in.read();
if (op == '1'){
}
System.out.println(num1 + " + " + num2 + " = " + (num1 + num2) );
if (op == '2'){
}
System.out.println(num1 + " - " + num2 + " = " + (num1 - num2) );
if (op == '3'){
}
System.out.println(num1 + " * " + num2 + " = " + (num1 * num2) );
if (op == '4')
System.out.println(num1 + " / " + num2 + " = " + (num1 / num2) );
else
System.out.println("Número incorreto !");
}
}
Desde já, grato.
Junior Cavalcante
Curtidas 0
Respostas
Omero Bertol
26/05/2013
Na utilização do método read(), é necessário reportar o uso da cláusula throws com a exceção IOException no cabeçalho do método main(), para indicar que não serão tratados os possíveis erros que poderiam ocorrer na entrada de dados do tipo caractere com o respectivo método.
public static void main(String[] args) throws IOException {
...
}
Também uses um conjunto de if's aninhados:
if (op == '1'){
System.out.println(num1 + " + " + num2 + " = " + (num1 + num2) );
} else if (op == '2'){
System.out.println(num1 + " - " + num2 + " = " + (num1 - num2) );
} else if (op == '3'){
System.out.println(num1 + " * " + num2 + " = " + (num1 * num2) );
} else if (op == '4')
System.out.println(num1 + " / " + num2 + " = " + (num1 / num2) );
else System.out.println("Número incorreto !");
}
public static void main(String[] args) throws IOException {
...
}
Também uses um conjunto de if's aninhados:
if (op == '1'){
System.out.println(num1 + " + " + num2 + " = " + (num1 + num2) );
} else if (op == '2'){
System.out.println(num1 + " - " + num2 + " = " + (num1 - num2) );
} else if (op == '3'){
System.out.println(num1 + " * " + num2 + " = " + (num1 * num2) );
} else if (op == '4')
System.out.println(num1 + " / " + num2 + " = " + (num1 / num2) );
else System.out.println("Número incorreto !");
}
GOSTEI 0
Omero Bertol
26/05/2013
Também é mais eficiente usar um conjunto de if's aninhados (if - else if):
if (op == '1'){
System.out.println(num1 + " + " + num2 + " = " + (num1 + num2) );
} else if (op == '2'){
System.out.println(num1 + " - " + num2 + " = " + (num1 - num2) );
} else if (op == '3'){
System.out.println(num1 + " * " + num2 + " = " + (num1 * num2) );
} else if (op == '4') {
System.out.println(num1 + " / " + num2 + " = " + (num1 / num2) );
} else {
System.out.println("Número incorreto !");
}
if (op == '1'){
System.out.println(num1 + " + " + num2 + " = " + (num1 + num2) );
} else if (op == '2'){
System.out.println(num1 + " - " + num2 + " = " + (num1 - num2) );
} else if (op == '3'){
System.out.println(num1 + " * " + num2 + " = " + (num1 * num2) );
} else if (op == '4') {
System.out.println(num1 + " / " + num2 + " = " + (num1 / num2) );
} else {
System.out.println("Número incorreto !");
}
GOSTEI 0
Rafael Benetti
26/05/2013
if (op == '1')
{
System.out.println(num1 + " + " + num2 + " = " + (num1 + num2));
}
else if (op == '2')
{
System.out.println(num1 + " - " + num2 + " = " + (num1 - num2));
}else if (op == '3')
{
System.out.println(num1 + " * " + num2 + " = " + (num1 * num2));
}else if (op == '4')
{
System.out.println(num1 + " / " + num2 + " = " + (num1 / num2));
}
//Si nao for nenhuma das opcoes entao opcao incorreta
else
{
System.out.println("Número incorreto !");
}
voce so colou os if errados
GOSTEI 0