java循环控制结构的理解

来源:互联网 发布:淘宝怎么修改店铺名 编辑:程序博客网 时间:2024/05/16 17:18
任何的循环结构(while | for | do...while)都离不开4个必要因素:
1) 控制变量;
2) 变量初值;
3) 变量增值;
4) 终止条件。

对于for结构来说,通过break或continue进行不带label的跳出或继续:
continue不可避免的要进行变量增值,要不死循环,有点类型while结构中末尾必须的变量增值;break直接跳出,控制变量的值为跳出时的赋值。

对于带label的for结构来说:
continue只对label那个循环进行变量增值;break直接跳出。
  1. import javax.swing.JOptionPane;
  2. public class BreakTest {
  3.    
  4.    public static void main(String[] args) {
  5.       String output = "";
  6.       int count;
  7.       
  8.       for (count = 1; count <= 10; count++) {
  9.          
  10.          if (count == 5)
  11.             break;
  12.          
  13.          output += count + " ";
  14.       }
  15.       
  16.       output += "/nBroke out of loop at count = " + count;
  17.       JOptionPane.showMessageDialog(null, output);
  18.       
  19.       System.exit(0);
  20.    }
  21. }
  1. import javax.swing.JOptionPane;
  2. public class ContinueTest {
  3.    
  4.    public static void main(String[] args) {
  5.       String output = "";
  6.       int count;
  7.    
  8.       for (count = 1; count <= 10; count++) {
  9.          
  10.          if (count == 5)
  11.             continue;
  12.             
  13.          output += count + " ";
  14.       }
  15.       
  16.       output += "/nUsed continue to skip printing 5, final count: " + count;
  17.       JOptionPane.showMessageDialog(null, output);
  18.       
  19.       System.exit(0);
  20.    }
  21. }
推算下面程序的结果!
  1. public class LabeledFor {
  2.     public static void main(String[] args) {
  3.         int i = 0;
  4.         outer:// Can't have statements here
  5.         for(; true ;) { // infinite loop
  6.             inner: // Can't hava statements
  7.             for(; i < 10; i++) {
  8.                 System.out.println("i = " + i);
  9.                 if(i == 2) {
  10.                     System.out.println("continue");
  11.                     continue;
  12.                 }
  13.                 if(i == 3) {
  14.                     System.out.println("break");
  15.                     i++; // Otherwise i never gets increamented.
  16.                     break;
  17.                 }
  18.                 if(i == 7) {
  19.                     System.out.println("continue outer");
  20.                     i++;// Otherwise i never gets increamented.
  21.                     continue outer;
  22.                 }
  23.                 if(i == 8) {
  24.                     System.out.println("break outer");
  25.                     break outer;
  26.                 }
  27.                 
  28.                 for(int k =0; k < 5; k++) {
  29.                     if(k == 3) {
  30.                         System.out.println("continue inner");
  31.                         continue inner;
  32.                     }
  33.                 }
  34.             }
  35.         }
  36.     }
  37. }