Java程序设计的基本结构 – 循环结构

  • 2020 年 4 月 10 日
  • 筆記

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。

  • 对于文章中出现的任何错误请大家批评指出,一定及时修改。
  • 有任何想要讨论和学习的问题可联系我:[email protected]
  • 发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

Java程序设计的基本结构 – 循环结构

文本关键字:基本结构、循环结构、while、do-while、for

一、循环的基本结构

为了讲解方便,我们可以将循环结构划分为四个部分来进行描述。当然,这四个部分并不是都要出现,甚至在都不出现时也可以构成一个循环结构。并且,对于不同的循环结构,每个部分的相对位置也不同。

1. 初始化部分

在进入循环结构之前可以定义一些循环中以及循环结束后都要用到的变量,进行赋值。

2. 判断条件部分

用于决定是否继续进行循环,如果为假,则循环结束。判断部分可以直接使用一个布尔类型的变量,或者使用表达式,但是必须保证表达式的结果为布尔类型。

3. 循环体部分

循环结构的核心部分,用于书写每次想要重复执行的代码,通常要根据程序功能来设计。

4. 迭代部分

用于辅助控制循环的结束,在循环体之后执行,如变量自增等。

与判断结构类似,当不使用大括号时,循环结构只能控制一行代码,通常我们会添加大括号。

二、while循环

1. 循环结构

[初始化部分]  (条件判断部分){      循环体      [迭代部分]  }

2. 循环特点

对于while循环,通常用于循环次数不确定时,如:让使用者决定什么时候退出循环。

  • 可以用一个布尔变量直接来决定循环是否继续
  • 可以用break关键字随时跳出循环
  • 当条件判断部分不成立时结束循环
  • 初始化部分和迭代部分可以省略
  • 条件判断部分后如果出现分号会导致结构直接结束

3. 示例程序

  • 循环输出1到9
   (String[] args){         i = ;        (i <= ){            System..(i);            i++;      }  }
  • 猜字程序
 ;   ;  {         (String[] args){            Scanner sc =  Scanner(System.);            Random random =  Random();             n = random.();             flag = ;            (flag){              System..();                 temp = sc.();                (temp == n){                  System..();                    flag = ;              }{                    System..();                    (sc.() == ){                        flag = ;                  }              }          }            sc.();      }  }

三、do-while循环

1. 循环结构

[初始化部分]  {      循环体      [迭代部分]  }(条件判断部分);

2. 循环特点

do-while循环与while循环的用法基本相同,主要的不同点在于循环体(迭代部分)一定会先执行一次,然后再进行判断,这非常适合在初学时做成菜单程序。

  • 可以用一个布尔变量直接来决定循环是否继续
  • 可以用break关键字随时跳出循环
  • 当条件判断部分不成立时结束循环
  • 初始化部分和迭代部分可以省略

3. 示例程序

  • 菜单程序

break只能跳出离自己最近一层的switch-case或循环结构,如果想直接跳出指定层的循环,需要使用到自定义标签。自定义标签的用法比较简单,直接在一个循环结构的起始位置加一个单词,配合冒号使用,在进行跳出时,可以在break后面添加自定义标签的名称,即可跳出指定层的循环。

 ;  {         (String[] args){            Scanner sc =  Scanner(System.);            out:{              System..();              System..();              System..();              System..();              System..();                 select = sc.();              (select){                   :                        ;                   :                        ;                   :                         out;              }            }();            sc.();      }  }

四、for循环

1. 循环结构

(初始化部分;条件判断部分;迭代部分){      循环体  }

2. 循环特点

for循环主要用于循环次数确定的情况,通常使用break直接跳出循环是由于已经完成了所需工作,终止剩余无用循环以提高程序运行效率。

  • for循环的一个明显特点在于初始化部分,迭代部分的控制比较方便,可以完全在循环内部完成
  • 初始化部分写在小括号中第一个位置,只会执行一次
  • 如果在初始化部分声明一个新的变量,则该变量只能在循环内部使用
  • 判断条件出现在小括号的中间位置,可以是布尔类型的变量或表达式,也可以直接省略使用break关键字手动跳出
  • 迭代部分通常用于变量的控制,每次循环体结束后执行
  • continue关键字可以用于所有的循环结构,作用是立即结束当前循环(跳过循环体的剩余部分内容,迭代部分依然会执行),进入下一次循环

3. 示例程序

  • 计算整数1~10的加和
   (String[] args){         sum = ;      ( i = ;i <= ;i++){            sum += i;      }        System..(sum);  }
  • 输出整数0~100范围内的所有偶数
   (String[] args){      ( i = ;i <= ;i++){            (i %  != ){                ;          }          System..(i);      }        System..(sum);  }

五、死循环

死循环的出现是由于我们没有正确的指定循环的终止条件和控制相关的变量,导致判断条件部分一直为真,使得循环结构无法结束。但有些时候根据功能需要我们会手动先构造一个死循环,然后使用break来进行跳出,如:菜单程序,由用户来决定什么时候结束,进行循环的跳出。手动构建一个死循环十分简单,但是如果意外的出现死循环就需要优先检查条件判断部分以及相关变量的变化了。

1. while循环

(){      循环体  }

2. do-while循环

{      循环体  }()

3. for循环

(;;){      循环体  }

更多推荐

Java程序设计的基本结构+-+选择结构