GARANTIR DESCONTO

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);
}
}
Nairan

Nairan

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.

#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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar