Fórum Calculadora básica JAVA #562910
25/09/2016
0
Estou tentando criar uma calculadora com as operações básicas (+ e -), porém, esta dando um erro que não consigo identificar.
gostaria de saber qual o motivo do erro.
segue abaixo o código.
package javaapplication5;
import java.util.Scanner;
public class JavaApplication5 {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int i=0,a, x, soma = 0;
String conta, recebe;
char op;
char[] vet0 = new char[20];
char[] vet1 = new char[20];
System.out.println("Digite um valor: ");
conta = teclado.nextLine();
vet0 = conta.toCharArray();
while (i<conta.length()){
x=0;
for (i=i;i<conta.length()||vet0[i]!='+'&&vet0[i]!='-';i++){
vet1[x] = vet0[i];
x++;
}
op = vet0[i];
recebe = String.copyValueOf(vet1);
float passagem = Float.valueOf(recebe).floatValue();
a = (int)passagem;
if (op=='+'){
soma=soma+a;
}else if (op=='-'){
soma=soma-a;
}
i++;
}
System.out.println(soma);
}
}
gostaria de saber qual o motivo do erro.
segue abaixo o código.
package javaapplication5;
import java.util.Scanner;
public class JavaApplication5 {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int i=0,a, x, soma = 0;
String conta, recebe;
char op;
char[] vet0 = new char[20];
char[] vet1 = new char[20];
System.out.println("Digite um valor: ");
conta = teclado.nextLine();
vet0 = conta.toCharArray();
while (i<conta.length()){
x=0;
for (i=i;i<conta.length()||vet0[i]!='+'&&vet0[i]!='-';i++){
vet1[x] = vet0[i];
x++;
}
op = vet0[i];
recebe = String.copyValueOf(vet1);
float passagem = Float.valueOf(recebe).floatValue();
a = (int)passagem;
if (op=='+'){
soma=soma+a;
}else if (op=='-'){
soma=soma-a;
}
i++;
}
System.out.println(soma);
}
}
Nairan
Curtir tópico
+ 0
Responder
Posts
25/09/2016
Arthur
Olha em java em não sei nada, mas recentemente criei um código de uma calculador simples em C. Talvez você possa tentar entendê-lo e tirar alguma base.
Nesse código as operações são digitadas tudo na mesma linha (opcional) e a conta é finalizado quando você digita o sinal de '=';
#include <stdio.h>
void main()
{
double resultado,o_numero;
char operador;
printf("bEM ViNdO Z /z\\nDigite suas expressoes: ");
scanf("%lf",&resultado);
scanf(" %c",&operador);
do
{
scanf("%lf",&o_numero);
switch(operador)
{
case '*' : resultado = resultado * o_numero; break;
case '/' : resultado = resultado / o_numero; break;
case '+' : resultado = resultado + o_numero; break;
case '-' : resultado = resultado - o_numero; break;
default : resultado = resultado + 0.0;
}
scanf(" %c",&operador);
// nao limpe o buffer; se nao o char vai armazenar \\n
}while(operador != '=');
puts("");
printf("\\n Resultado: %lf \\n",resultado);
//system("pause"); [caso do windows]
}
Nesse código as operações são digitadas tudo na mesma linha (opcional) e a conta é finalizado quando você digita o sinal de '=';
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)