Avatar billede joller10 Nybegynder
26. november 2010 - 13:44 Der er 4 kommentarer og
1 løsning

Operatorer

Jeg har to arrays kaldet arrayDouble og arrayString. arrayDouble indeholder en række tal, og arrayString indeholder operatorer (+, -, *, /).

Jeg prøver på at løse følgende (med en for-lykke øverst):

udregner.setText( arrayDouble[x] arrayString[x] arrayDouble[x+1]);

Den ser ikke arrayString[x] som en operator mellem de to, og ville høre om man kunne få den til at tro det er en operator.
Avatar billede mcb2001 Nybegynder
26. november 2010 - 14:17 #1
Du skal bruge noget der oversætter din string, noget a'la nedenstående.
Men du bør nu bruge enum istedet for string, og så kan du blot bruge en "switch":

public static void calc(double a, string op, double b)
{
if(op.compareTo("+")
{
return a+b;
}
else if(op.compareTo("-")
{
return a-b;
}
else if(op.compareTo("*")
{
return a*b;
}
else if(op.compareTo("/")
{
return a/b;
}
else
{
throw new IllegalArgumentException(op);
}
}
Avatar billede arne_v Ekspert
26. november 2010 - 20:57 #2
Hvis .compareTo erstattes af .equals, så må det være den simple løsning.

De mere tricky involverer brug af script engine, bean shell, dynamisk kode generering etc..
Avatar billede arne_v Ekspert
27. december 2010 - 00:18 #3
joller??
Avatar billede joller10 Nybegynder
27. december 2010 - 18:46 #4
Ja havde håbet på et andet svar ^^ men mcb2001 bare læg et svar så giver jeg point
Avatar billede mcb2001 Nybegynder
28. december 2010 - 12:56 #5
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester