zoukankan      html  css  js  c++  java
  • JAVA的循环控制与循环嵌套

    循环控制和循环嵌套

    循环控制是除了循环条件之外,控制循环是否进行的一个机制,这给处理循环问题带来了灵活性。循环体内的语句块可以是顺序执行的语句,可以是分支结构的语句,也可以是循环语句,循环中含循环,就是循环嵌套。

    1. 循环控制

    循环控制由break语句和continue语句实现。

    (1)break语句

    break语句很利落简单,语句形式:

    break;

    break语句除了适用于switch外,也适用于for、while以及do-while三种循环语句,其作用是结束循环,程序流程至这些语句后的第一句。通常break语句配合条件语句一起使用。

    例8:求1+2+3 +…+ N < 1000的N的最大数。

    分析:这是一个自然数累加计算加判断的问题,加多少项是预先不知的,或者正是所求的,所以不管是用哪个循环语句来处理,条件的地方均无法明确给出。这就需要在循环体中边加边判断,如果结果有了,中途退出循环。

    [TestBreak.java] 
     
               class TestBreak{ 
     
                   public static void main(String[] args){ 
     
                       int sum = 0, num = 1; 
     
                       while( true ){ 
     
                           sum += num; 
     
                           if( sum>1000 ) break; 
     
                           num ++ ; 
     
                       } 
     
                       System.out.println("N: " + (num-1)); 
     
                   } 
     
               }
    (2)Continue语句

    continue语句形式:

    continue;

    continue语句,也称短路语句。它适用于for、while以及do-while语句中,其作用是忽略其后的语句,中止当前循环,流程转至循环起始处,开始下一次循环。

    例9:阅读程序,分析程序运行结果。

    [TestContinue.java] 
     
               class TestContinue{ 
     
                   public static void main(String[] args){ 
     
                       for(int m = 1; m <= 10; m ++){ 
     
                           if( m%2 == 0 ) continue;  
     
                           System.out.print(m + " "); 
     
                       } 
     
                   } 
     
               }
    2. 循环嵌套

    在解决复杂一些的问题时,需要在循环里继续设置循环语句,这就是循环的嵌套。外层的循环称为外循环,内层的循环称为内循环。如输出二维矩阵的问题,用循环嵌套就很容易解决。

    例10:阅读程序,分析程序运行流程。

    [Matrix.java] 
     
               class Matrix { 
     
                   public static void main( String[] args ){ 
     
                      for( int i=1; i<=3; i++ ) { 
     
                           for ( int j=1; j<=5; j++) 
     
                                 System.out.print(i*j + " ");       
                                 //内循环体 
     
                           System.out.println();                
                            //换行 
     
                      } 
     
                   } 
     
               }
    程序分析:i是外循环变量,当i取得一个值,循环体(斜体部分的代码)执行一次。其中有两条语句,一条是for循环语句(内循环),另一条是换行语句。当循环体执行时,即内循环变量j从初值到终值遍历一次,进行输出。i增值换下一个时,先换行。

    本程序的输出结果是:

    1       2       3       4       5

    2       4       6       8       10

    3       6       9       12      15

    例11:输出一个三角形形式的九九乘法表。

    1×1=1

    2×1=2   2×2=4

    3×1=3   3×2=6   3×3=9

    4×1=4   4×2=8   4×3=12  4×4=16

    5×1=5   5×2=10  5×3=15  5×4=20  5×5=25

    6×1=6   6×2=12  6×3=18  6×4=24  6×5=30  6×6=36

    7×1=7   7×2=14  7×3=21  7×4=28  7×5=35  7×6=42  7×7=49

    8×1=8   8×2=16  8×3=24  8×4=32  8×5=40  8×6=48  8×7=56  8×8=64

    9×1=9   9×2=18  9×3=27  9×4=36  9×5=45  9×6=54  9×7=63  9×8=72  9×9=81

    分析:这与前面矩阵输出的问题有些相像,同样也是输出多行的问题。乘法表有九行,可用循环变量i来记录行数(1~9行),第1行,有1个乘法算式;第2行,有2个乘法算式;第i行便有i个乘法算式。对于确定的第i行,如何来输出这i个算式呢?这又是一个重复处理的问题,可用内循环来解决。内循环变量设为j,j的变化从1到i。

    [MutiTable.java] 
     
     class MutiTable{ 
     
         public static void main( String[] args ){ 
     
     for( int i=1; i<=9; i++ ) { 
     
          for ( int j=1; j<=i; j++) 
     
        System.out.print( i + "*" +j+ "=" + i*j + " ");  
     
     System.out.println(); 
     
         } 
     
     } 
     
          }
    以上程序巧妙的是,循环变量i和j正巧是每个乘法算式的被乘数和乘数。

    三千世界鸦杀尽,与卿共枕到天明
  • 相关阅读:
    tar命令详解
    保存GNOME桌面环境中声卡的音量设置
    SyntaxError: NonASCII character ‘\xe5′ in file
    Python小练习采集天气预报
    Debian编译内核教程
    Debian软件包依赖关系图
    mysql unauthenticated user原因分析以及解决方法
    Struts2 配置
    Map基本操作
    Iterator迭代器
  • 原文地址:https://www.cnblogs.com/Dragon-Tyrant/p/3653096.html
Copyright © 2011-2022 走看看