Utilisation d'une variable dans une déclaration de cas Java
Je fais un analyseur d'expression pour une calculatrice. Les expressions contiendront une variable, par exemple, un utilisateur pourrait entrer "x + 2", ou "y^2". J'ai un switch, et l'un des cas dans l'instruction switch effectue une certaine action lorsqu'il détecte une variable:
case variableSymbol:
if (expression.length() == 1)
{
rangeResult = x1;
break outer;
}
varFlag = true;
varPos = expresPos;
break;
À l'origine, j'ai codé en dur une valeur 'x' dans le cas ci-dessus, mais je voudrais donner aux utilisateurs le choix de la variable qu'ils utilisent, alors j'ai ajouté un paramètre char à la fonction d'analyse et l'ai nommé variableSymbol. Voici les paramètres de la fonction:
public static ArrayList<Double> parseRange(String expression, char variableSymbol, double x1, double x2, double step)
Mais Java n'autorise pas les variables comme cas dans les instructions switch. Est-il un moyen de contourner cela? Les solutions qui évitent de réécrire l'instruction switch sont les meilleures, car elles durent plusieurs centaines de lignes.Je vous remercie pour votre aide.
1 answers
Non, ce n'est pas possible et n'a pas de sens pour un cas switch
; ce que vous voulez peut être réalisé avec if-else
. La raison en est que switch est généralement implémenté avec des tables de recherche, étant plus efficace que if-else
; mais pour y parvenir, la branche doit être configurée au moment de la compilation.