...
Code Block | ||
---|---|---|
| ||
// fortsett så lenge det er tokens i input-køen (les om tokens i Oppstykking og tolkning av input, nedenfor) while (scanner.hasNext()) { // sjekk om input'en faktisk følger double-syntaksen if (scanner.hasNextDouble()) { double operand = scanner.nextDouble(); // gjør noe med operand her // ... } else { // hvis input'en ikke er en double, er det ihvertfall et ord/token String operator = scanner.next(); // gjør noe med operator-verdien her if ("+".equals(operator)) { // husk å sjekke String med equals! // +-operasjonen implementeres her ... } else if ... ... } } |
Anta at brukeren har skrevet inn "1.0 + 2" (uten anførselstegn). I den første runden i while-løkka vil den første grenen av if'en bli kjørt og operand bli tilordnet 1.0, fordi "1.0" jo følger double-syntaks og hasNextDouble()-metoden derfor returnerer true. I den andre runden vil den andre grenen av if'en bli kjørt og operator blir tilordnet "+" fordi "+" ikke er gyldig iht. double-syntaks. I den tredje runden blir den første grenen kjørt igjen fordi "2" kan leses som en double. Merk imidlertid at det går galt dersom brukeren skriver inn "1.0+2", fordi reglene for oppstykking gjør at dette regnes som ett stykke input og ikke tre.
...