我改变了我的代码以使用if-else语句,但我仍有问题。
当我尝试在unix中键入=时,它没有打印出来0.当我输入任何内容时它也没有打印出来。这有什么不对......请帮忙
对不起我是新手,请耐心等待我。
public static void processCommand(String s) {
//If an "=" is received, print zero always
if (s.charAt(s.length()-1) == '=') {
System.out.println(0);
}
}
public static boolean isOperator(String s) {
return (s.equals("+") || s.equals("-") || s.equals("*") || s
.equals("/")) || s.equals("%");
}
public static void main(String[] args) {
String s;
//create a stack called st
Stack<Integer> st = new Stack<Integer>();
Scanner scan = new Scanner(System.in);
while (scan.hasNext()) {
s = scan.next();
if (isOperator(s)) {
if (st.size() > 1) {
if (s.equals("+")) {
st.push((Integer) st.pop() + (Integer) st.pop());
} else if (s.equals("-")) {
st.push(-(Integer) st.pop() + (Integer) st.pop());
} else if (s.equals("*")) {
st.push(-(Integer) st.pop() * (Integer) st.pop());
} else if (s.equals("/")) {
int x = st.pop();
int y = st.pop();
if (x == 0) {
System.out.println("Cannot be divided by zero");
} else {
st.push(y/x);
}
}
}
processCommand(s);
}
}
}
答案 0 :(得分:0)
make processCommand(s);循环外的语句,它将起作用。