力扣-150-逆波兰表达式求值
class Solution { public int evalRPN(String[] tokens) { int len = tokens.length; Stack<Integer> stack = new Stack<>(); for(int i = 0; i < len; i++) { Integer x = 0; Integer y = 0; switch (tokens[i]) { case "+": x = stack.pop(); x += stack.pop(); stack.push(x); break; case "-": x = - stack.pop(); x += stack.pop(); stack.push(x); break; case "*": x = stack.pop(); x *= stack.pop(); stack.push(x); break; case "/": x = stack.pop(); y = stack.pop(); x = y/x; stack.push(x); break; default: stack.push(Integer.parseInt(tokens[i])); break; } } return stack.peek(); } }
调试了半天,原来是没加break,Java的switch-case语句用的少,挑了个寂寞。
这里给出一个比较好的链接
总之switch case执行时,一定会先进行匹配,匹配成功返回当前case的值,再根据是否有break,判断是否继续输出,或是跳出判断。
作者:Ryanjie
出处:http://www.cnblogs.com/ryanjan/
本文版权归作者和博客园所有,欢迎转载。转载请在留言板处留言给我,且在文章标明原文链接,谢谢!
如果您觉得本篇博文对您有所收获,觉得我还算用心,请点击右下角的 [推荐],谢谢!