• Java基础-程序流程控制第二弹(循环结构)


                 Java基础-程序流程控制第二弹(循环结构)

                                    作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

      流程控制有三种基本结构:顺序结构,选择结构和循环结构。一个脚本就是顺序结构执行的,选择结构就是我之前分享的几篇学习笔记,比如if语句和switch语句,而循环结构就是本篇博客要讲的重中之重。

    一.循环结构概述

      循环语句可以在满足循环条件的情况下,反复执行某一段代码,被反复执行的代码称为循环体,需要在适当的时候,把循环条件改为假,从而结束循环,否则循环将一直执行下去,形成死循环。完整的循环应该包含以下四个部分:

        1>.初始化语句:初始化工作,在循环体开始之前执行;

        2>.循环条件:一个boolean表达式,决定是否执行循环体;

        3>.循环体:反复执行的部分;

        4>.迭代语句:在循环体执行完之后执行,然后再去判断循环条件,一般用来控制循环条件中的变量,使循环在合适的时候结束;

    二.while循环

    1>.while语句格式

    [初始化部分]
    while(条件表达式){
           循环体语句;
           [循环变量控制语句]
    }
    ........//其它代码、

    2>.执行流程

      a>.执行初始化语句(如果有的话);

      b>.判断条件表达式真假:如果真,往下执行;如果假,结束循环;

      c>.执行循环体语句;

      d>.执行循环变量控制语句(如果有的话);

      e>.返回第2步,重复执行,直到条件为假,结束循环;

     3>.案例展示

     1 /*
     2 @author :yinzhengjie
     3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
     4 EMAIL:y1053419035@qq.com
     5 */
     6 
     7 public class WhileDome{
     8     public static void main(String[] args){
     9         /*
    10             遍历1-100之间所有的数,打印能被3整除的数,每行打印5个。
    11         */
    12         
    13         int counts = 0;                            //计数器变量
    14         int num = 1;                            //遍历100之内所有的数,因此我们需要制定起始位置。
    15         
    16         while( num <= 100 ){
    17             if( num % 3 == 0 ){                    //每个这个数能被3整除就打印
    18                 System.out.print( num + "	" );
    19                 counts++;                        //每打印一个就需要进计数,当计数器是5的倍数是就需要换行
    20                 if( counts % 5 == 0 ){            //判断是否换行
    21                     System.out.println();    
    22                 }
    23             }
    24             num++;
    25         }
    26     }
    27 }

    三.do...while循环

    1>.do...while格式

    [初始化部分] 
    do {
        循环体语句;
        [循环变量控制语句] 
    }while(条件表达式);

    2>.执行流程

          特点:循环体至少会被执行一次

      a>.执行初始化部分(如果有的话);

      b>.执行循环体语句;

      c>.执行循环变量控制语句(如果有的话);

      d>.判断条件表达式,如果为真,返回第2步;如果假,结束循环;

    3>.案例展示

     1 /*
     2 @author :yinzhengjie
     3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
     4 EMAIL:y1053419035@qq.com
     5 */
     6 
     7 public class DoWhileDome{
     8     public static void main(String[] args){
     9         /*
    10             遍历1-100之间所有的数,打印能被7整除的数,每行打印5个。
    11         */
    12         
    13         int num = 1;
    14         int counts = 0;
    15         
    16         do {
    17             if ( num % 7 == 0 ){
    18                 System.out.print( num + "	" );
    19                 counts++;
    20                 if( counts % 5 == 0 ){
    21                     System.out.println();
    22                 }
    23             }
    24             num++;
    25         }while( num <= 100 );
    26     }
    27 }

    四.for循环

     1>.for循环格式

    for(初始化表达式;条件表达式;循环变量控制语句){
           循环体语句;
    }

    2.执行流程

      a>.执行初始化表达式,只执行一次,通常是定义循环变量语句;

      b>.判断循环条件:为真就往下执行;为假就结束循环;

      c>.执行循环体语句;

      d>.执行循环变量控制语句,一般是循环变量的自增或自减;

      e>.回到第2步,重复这个过程,直到为假时结束;

    3>.案例展示

    a>.判断1~100的奇数和偶数。

     1 /*
     2 @author :yinzhengjie
     3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
     4 EMAIL:y1053419035@qq.com
     5 */
     6 
     7 public class ForDome{
     8     public static void main(String[] args){
     9         System.out.println("以下打印的是奇数");
    10         for( int i = 1; i <= 100; i++ ){
    11             if( i % 2 != 0 ){
    12                 System.out.println(i);
    13             }
    14         }
    15 
    16         System.out.println("以下打印的是偶数");
    17         for( int i = 0; i <= 100; i+=2 ){
    18                 System.out.println(i);
    19         }
    20     }
    21 }

     b>.求和案例(用到了可变长形式参数)

     1 /*
     2 @author :yinzhengjie
     3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
     4 EMAIL:y1053419035@qq.com
     5 */
     6 
     7 package cn.org.yinzhengjie.demo;
     8 
     9 /*
    10  * 参数个数不确定的形参定义
    11  * public static int add(int... args){...}
    12  */
    13 public class VariableArgsDemo {
    14 
    15     public static void main(String[] args) {
    16         int sum = add2(1,2,3,4,5);
    17         System.out.println(sum);
    18     }
    19     
    20     //可变参数之前,可以有其它的形参,但是后边不能再有形参定义
    21     public static int add2(int a,int... args){
    22         int sum = a;
    23         for (int i = 0; i < args.length; i++) {
    24             sum += args[i];
    25         }
    26         return sum;
    27     }
    28     
    29     //变长参数方法
    30     public static int add(int... args){
    31         int sum = 0;
    32         for (int i : args) {
    33             sum += i;
    34         }
    35         return sum;
    36     }
    37 }
    38 
    39 
    40 
    41 /*
    42 以上代码执行结果如下:
    43 15
    44 */

    五.嵌套循环

      其实大家听了这个词就应该是啥意思,就是循环里面嵌套循环,比如我们小学铅笔盒上的“九九乘法表”还记得吗?我们可以通过上面三种循环任何一种嵌套方式实现,而且可以相互嵌套。话不多说,我们一起开看一下我写的代码。

     1 /*
     2 @author :yinzhengjie
     3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
     4 EMAIL:y1053419035@qq.com
     5 */
     6 
     7 
     8 /*
     9     
    10 */
    11 
    12 public class multiplicationTable{
    13     public static void main(String[] args){
    14         /*
    15         //99乘法表姿势一:
    16         for(int i=1;i<=9;i++){
    17             for (int j = 1;j <= i;j++){
    18                  System.out.print(i + "x" + j + "=" + i * j + "	");
    19             }
    20             System.out.println();
    21         }
    22         */
    23         
    24         
    25         
    26         /*
    27         //99乘法表姿势二:
    28         int a = 1;
    29         while(a < 10){        //控制行数
    30             // System.out.println(a);        
    31             int b = 1;
    32             while(b <= a){        //控制每行的内容
    33                  System.out.print(a + "x" + b + "=" + a * b + "	");
    34                  b++;
    35             }
    36             System.out.println();
    37             a++;
    38         }
    39         */
    40         
    41         ////99乘法表姿势三:
    42         int x = 1;
    43         do{
    44             // System.out.print(x + "x" + y + "=" + x * y + " ");
    45             int y = 1;
    46             do{
    47                 System.out.print(y + "x" + x + "=" + y * x + "	");
    48                 y++;
    49             }while(y <=  x);
    50             System.out.println();
    51             x++;
    52         }while(x < 10);        
    53         
    54         
    55     }    
    56 }

     

                          

  • 相关阅读:
    HTML特殊字符编码对照表
    前端研究CSS之文字与特殊符号元素结合的浏览器兼容性总结
    前端研究CSS之内联元素块级化/区域大小/文字和图标的位置
    鼠标滚动事件onscroll在firefox/chrome/Ie中执行次数的问题处理
    Js把对象数组列表转换成数组
    Windows 10简体中文最新预览版Build 9926
    常州陪购师一小时收费300元 1年穿坏20双高跟鞋
    [2015.01.23]办公工具类....不定时添加
    [2015.01.21]数据恢复类....不定时添加
    2015年高速免费通行时间确定 共计免费20天
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/8698159.html
Copyright © 2020-2023  润新知