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 }

 

                      

原文地址:https://www.cnblogs.com/yinzhengjie/p/8698159.html