Problema com swtich

1 resposta
D

Eu to fazendo esse programa para calcular uma expressão infixa, então eu leio uma expressão do tipo 12+ o resultado é 3. Quando eu acho um número eu empilho, aí quando eu acho um operador eu desempilho os números faço a soma e empilho o resultado. Só que quando eu acho um operador ele não entra no case ‘+’, qoe será que eu to fazendo de errado?

import java.util.Stack;
import java.util.Scanner;


public class BinaryTree 
{	
	public static void main(String args[])
	{
		Stack<Integer> stack = new Stack<Integer>();
		Scanner input = new Scanner(System.in);
		String s = input.nextLine();
		char []s1 = s.toCharArray();
		int cont = 0;
		int i, j;
		
		switch(s1[cont])
		{
			case '+':
				i = stack.pop();
				j = stack.pop();
				i += j;
				stack.push(i);
				cont++;
				
				break;
				
			case '-':
				i = stack.pop();
				j = stack.pop();
				i = i - j;
				stack.push(i);
				cont++;
				
				break;
				
			case '*':
				i = stack.pop();
				j = stack.pop();
				i = i * j;
				stack.push(i);
				cont++;
				
				break;
				
			case '/':
				i = stack.pop();
				j = stack.pop();
				i = i / j;
				stack.push(i);
				cont++;
				
				break;
				
			default:
				int aux = s1[cont] - '0';
				stack.push(aux);
				cont++;
				
				break;
		}
		int ij = stack.pop();
		System.out.println(ij);	
	}
}

1 Resposta

D

Achei meu problema, esqueci de um laço pra percorrer o char todo. :oops:

Criado 8 de novembro de 2008
Ultima resposta 8 de nov. de 2008
Respostas 1
Participantes 1