Приоритет операций в Польской инверсной записи - C#
Формулировка задачи:
Разбирая код представленный тут, столкнулся с тем что при вводе например такого выражения a*b*c, результат будет abc**, а должен быть ab*c*.. Но это поправляется добавлением условия равенства индексов операторов.
НО.. операторы выдает ошибку что не все ветви возвращают значения.
Подскажите в чем проблема??
/
и*
или+
и-
имеют равные приоритеты, хотел написать простенькую функцию switch-case которая бы возвращала приоритет входящего знака и столкнулся с проблемой
public static int PRIOR(char a)
{
switch (a)
{
case '/':
return 4;
case '*':
goto case '/';
case '+':
return 3;
case '-':
goto case '*';
case '(':
return 2;
case '=':
return 1;
}
}Решение задачи: «Приоритет операций в Польской инверсной записи»
textual
Листинг программы
public static int PRIOR(char a)
{
switch (a)
{
case '/':
return 4;
break;
case '*':
goto case '/';
break;
case '+':
return 3;
break;
case '-':
goto case '*';
break;
case '(':
return 2;
break;
case '=':
return 1;
break;
default:
throw new NotImplementedException();
break;
}
}