Assigning many I2C addresses to an Arduino

More info for the Wire library, Arduino Playground - WireLibraryDetailedReference

Using a condition to set the slave address is valid.
Calling Wire.begin repeatedly with a different slave address might work. I am not sure about that, but I don't know a reason why it should not work.
There is no Wire.end function, which would be useful.