스위치 케이스가있는 인수 파일을 Stack
에 스캔하고 있는데 .nextDouble
명령으로 값을 건너 뛰고 있습니까? ^ 2 - 3/2 6 * 8 + 2.5 3
이Java 스캐너 nextDouble 명령은 스위치 케이스로 값을 건너 뛰고 있습니까?
그러나, 스캐너는 수집 : ^ 2 - 3/6 * 8 + 3
while (stackScanner.hasNextLine()) {
switch(stackScanner.next()) {
case"+": {
operator= new operationNode("+");
stack.push(operator);}
case"-":{
operator= new operationNode("-");
stack.push(operator);}
case"*":{
operator= new operationNode("*");
stack.push(operator);}
case"/":{
operator= new operationNode("/");
stack.push(operator);}
case"^":{
operator= new operationNode("^");
stack.push(operator);}
while(stackScanner.hasNextDouble()) {
stack.push(new numberNode(stackScanner.nextDouble()));
}
}
문제는 인수 파일에는 다음이 포함되어 여기 마지막 줄에 있습니다
여기에 내 코드 조각입니다.
그래서 여기에 쌍으로 나오는 첫 번째 숫자는 건너 뜁니다 (2 및 2.5).
while 루프의 끝에 stackScanner.next();
을 추가하면 저장되는 숫자는 2와 2.5가됩니다.
사례에 휴식이 없다는 사실과 while 루프가 switch 문 안에 있다는 것을 알고 계셨습니까? –
@MauricePerry 기본값으로 사용했지만 특정 값을 읽지 못했습니다. 또한 휴식은 내 결과에 영향을 미치지 않는 것 같습니다 (?) – Gege
정말 코드를 게시 했습니까? 복사하여 붙여 넣을 때 내가보고있는 결과가 표시되지 않습니다. 특히, 스택은''^, 2.0, -, *, /, ^, 3.0, /, ^, 2.0, 6.0, *, /, ^, 8.0, +, -, 2.5, 3.0]'@ MauricePerry가'break' 문이 없다는 관찰과 일치합니다. – DaveyDaveDave