마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

스택/계산기/ 질문드려요 ㅠㅠ왜안들어가는걸까요

0 추천
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 되지 않네요...ㅠㅠ
 
 
익명43443 님이 2015년 4월 27일 질문

2개의 답변

0 추천
 
채택된 답변
계산기는 중위 표기법에서 후위 표기법으로 변환한 뒤에 해야 하는거 아닌가요?
aucd29 (218,390 포인트) 님이 2015년 4월 27일 답변
+1 추천
저 코드 가지고 알수가 없을 것 같군요.

다시 처음부터 차근히 디버깅해봐요.

디버깅해서 문제 수정하는게 프로그래머입니다.

답을 남이 대신 공짜로 찾아주면 당신은 뭐가 되는 걸까요?

며칠전에 계산기 어떻게 만드나고 물어봤던 사람과 같은사람이라면,

좀더 찾으면 고칠수 있을거라고 봅니다.

(그걸 못하겠으면...빨리 그만두고 몸으로 할 수 있는 마트 판매사원 같은거락도 알아보세요.)
익명사용자 님이 2015년 4월 27일 답변
에러난다고 무턱대고 여기에 글 쓴거 아닙니다.
답을 공짜로 찾아 달라고 강요했나요?
모르기에 물어본 것이고, 알지 못하면 답변안해주셔도 됩니다.
게시판 용도가 질문하라고 만든 것 아닌가요?
이런 생각없는 댓글 때문에 앞으로 여기에 글 쓰기 어렵겠네요
...