Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
// 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.

...