public class Test12 {    public static void main (String[] args) {
     for(int x=1;x<10;x++)
     {
     if(x%2==0)  
     System.out.println(x);
     continue;
         System.out.println("dd");    
     }
    }
    }
这段代码怎么会提示System.out.println("dd"); 这行为“unreachable statement”,删除即可以运行.我不明白,continue都已经结束了本次循环,后面的语句都不执行了,怎么还会报错呢。
 

解决方案 »

  1.   


    public class Test12 {     public static void main (String[] args) { 
        for(int x=1;x <10;x++) 
        { 
        if(x%2==0){
          
        System.out.println(x); 
        continue;
        } 
            System.out.println("dd");    
        } 
        } 
        } 
      

  2.   

    你不加括号的话,你每次循环执行到continue就直接跳出循环了,也就是说你的System.out.println("dd"); 永远都不会执行,所以报错
      

  3.   

    永远不执行,他也会报错啊?public class Test12 {    public static void main (String[] args) {
         for(int x=1;x<10;x++)
         {
         if(x%2==0)  
        
         continue;
         System.out.println(x);
             System.out.println("dd");
        
         }
        }
        
        }
     但这样却可以运行。
      

  4.   

    你这样写  continue 是作用    if(x%2==0) 里,也就是说只用x%2==0 == true 才执行。否则就执行后面的输出。
      

  5.   

    等价于下边这个
    public class Test12 {     public static void main (String[] args) { 
        for(int x=1;x <10;x++) 
        { 
        if(x%2==0)  
        {
          continue; 
        }
         System.out.println(x); 
            System.out.println("dd"); 
        
        } 
        } 
        
        }
      

  6.   

    这当然可以运行了,你把continue直接放在if后面,后面的System.out.println(x); 
            System.out.println("dd"); 就会执行,因为if后面如果没有括号的话,if只会影响紧接着它的第一个语句,而不会影响到后面的其它语句
      

  7.   

    break和continue后面好像都不能跟语句的吧!