posted 19 years ago
it means that an assertion should never change the state of the application.
For example, an assertion that sets a member field of the class it's contained in has a side effect.
As the assertion will not run unless assertions are enabled this side effect cannot be relied upon to exist at runtime.
Of course you might under extremely rare conditions want this (for example if you want your class to be able to detect whether assertions are enabled or not) but I can't think of any practical reasons most people would ever encounter in real life.