public class AsssertTest { /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=0;i<10;i++){
try{
assert i%2==0:i--;
System.out.println("Even number:"+i);
}catch(AssertionError ae){
System.out.println("Odd number:"+ ++i);
}
}
}}

解决方案 »

  1.   

    C:\>javac -source 1.4 AsssertTest.javaC:\>java -ea AsssertTest
    Even number:0
    Odd number:1
    Even number:2
    Odd number:3
    Even number:4
    Odd number:5
    Even number:6
    Odd number:7
    Even number:8
    Odd number:9C:\>
      

  2.   

    try{
         assert i%2==0:i--;  
         System.out.println("Even number:"+i);
    }catch(AssertionError ae){
         System.out.println("Odd number:"+ ++i);
    }
    如果i%2==0 is true,不执行i--,直接打印是Even number
    否则,i--,然后catch中打印Odd number,并恢复i值.
      

  3.   

    改成
    public static void main(String[] args) {
    for(int i=0;i<10;i++){
    try{
    assert i%2==0;
    System.out.println("Even number:"+i);
    }
    catch(AssertionError ae){
    System.out.println("Odd number:"+i);
    }
    }
    }
    同样结果