switch (sign) {
case '+':
stack_num.push(number);
Log.i("TEST", number + "");
break;
case '-':
number = -1.0 * number;
stack_num.push(number);
Log.i("TEST", number + "");
break;
case '*':
res = stack_num.pop();
Log.i("TEST", number + ", " + res);
res = res * number;
stack_num.push(res);
Log.i("TEST", res + "");
break;
case '/':
res = stack_num.pop();
Log.i("TEST", number + ", " + res);
res = res / number;
stack_num.push(res);
Log.i("TEST", res + "");
break;
}
while (!stack_num.isEmpty()) {
Log.i("TEST", "스택비었니?: " + stack_num.pop());
res = res + (stack_num.pop());
tvResult.setText(res + "");
}
04-27 11:20:12.084 18678-18678/com.example.haney.mycalcuator I/TEST﹕ 식:10-2*3+4/2
04-27 11:20:12.084 18678-18678/com.example.haney.mycalcuator I/TEST﹕ -2.0
04-27 11:20:12.084 18678-18678/com.example.haney.mycalcuator I/TEST﹕ 3.0, -2.0
04-27 11:20:12.084 18678-18678/com.example.haney.mycalcuator I/TEST﹕ -6.0
04-27 11:20:12.084 18678-18678/com.example.haney.mycalcuator I/TEST﹕ 4.0
04-27 11:20:12.084 18678-18678/com.example.haney.mycalcuator I/TEST﹕ 2.0, 4.0
04-27 11:20:12.084 18678-18678/com.example.haney.mycalcuator I/TEST﹕ 2.0
04-27 11:20:12.084 18678-18678/com.example.haney.mycalcuator I/TEST﹕ 스택비었니?: 2.0
04-27 11:20:12.085 18678-18678/com.example.haney.mycalcuator I/TEST﹕ 스택비었니?: 10.0
+, -는 스택으로 push되구요
*, / 는 계산을 먼저하고 push합니다.
근데 4/2해서 2는 push되었는데
-2*3한 -6은 push 되지 않네요...ㅠㅠ