zoukankan      html  css  js  c++  java
  • 第六章:循环结构(二)

    第六章:循环结构(二)

    一. for 循环

    1.循环结构的四个组成部分

        (1). 初始部分:设置循环的初始状态,比如我们设置记录循环次数的变量 i 为 0 .

        (2). 循环体:重复执行的代码 .

        (3). 迭代部分:下一次循环开始前要执行的部分,在while循环中它作为循环体的一部分,比如使用"i++;"进行循环次数的累加 .

        (4). 循环条件:判断是否继续循环的条件 .

       语法 

      for(表达式1; 表达式2; 表达式3) 

      { 

             循环体 

      } 

    2.for 循环中三个表达式的含义

    表达式       形式     功能     举例

    表达式 1  赋值语句  循环结构的初始部分,

    为循环变量赋初值    int i = 0

    表达式 2  条件语句  循环结构的循环条件      i < 100

    表达式 3  赋值语句,通常使用++或--运算符       循环结构的迭代部分,

    通常用来修改循环变量的值      i++

    2. 执行顺序

    (1). 执行初始部分 (int i = 0;) .

    (2). 进入循环条件判断 (i < 100) .

    (3). 根据循环条件判断结果

        如果为true,执行循环体。

        如果为false,退出循环体,步骤(4)、(5)均不执行 .

    (4). 执行迭代部分,改变循环变量值 (i ++)

    (5). 依次重复步骤(2)、(3)、(4),直到退出 for 循环结构

    3.省略表达式

    (1). 省略"表达式 1",例如:

    [java] view plain copy print?

    for( ; i < 10; i++); 

    这个for循环虽然省略了"表达式 1",但其后的";"号没有省略。我们在实际编程中,如果出现"表达式 1"省略的情况,需要在 for 语句前给循环变量赋值。因此,可将上面的语句修改为:

    [java] view plain copy print?

    int i = 0; 

    for( ; i < 10; i++); 

    (2). 省略"表达式 2",即不判断循环条件,循环将无终止运行,也就形成了"死循环",比如下面的for 语句:

    [java] view plain copy print?

    for(int i = 0; ; i++); 

    在编程过程中要避免"死循环"的出现,所以对上面的语句可以做如下修改:一种方法是添加"表达式 2",另一种方法是在循环体中使用 break 强制跳出循环。

    (3). 省略 "表达式 3",即不改变循环变量的值,也会出现"死循环",比如下面的语句:

    for(int i = 0; i < 10; ); 

    这里省略了 "表达式 3",变量 i 的值始终未 0,因此循环条件永远成立,程序就会出现"死循环",在这种情况下,我们可以再循环体中改变 i 的值,语句如下:

    [java] view plain copy print?

    for(int i = 0; i < 10; ) 

        i++; 

    这样就能使循环正常结束,不会出现"死循环"

    (4). 三个表达式都省略,即如下语句:

    [java] view plain copy print?

    for( ; ; ); 

    上面这个语句在语法上没有错误,但逻辑上市错误的,我们可以参考上面三种情况的描述进行修改。

    在实际开发中,为了提高代码的可读性,尽量不要省略各个表达式,如果需要省略,可以考虑是否改用while或 do-while 循环。

    4. 跳转语句

    Java 支持三种形式的跳转:break (停止)、continue(继续) 和 return (返回)。

    1. break 语句

        在 switch 结构中,break 语句用于终止 switch 语句中的某个分支,使程序跳到 switch 语句块以外的下一条语句

        在循环结构中,break语句用于用于终止某个循环、使程序跳到循环块外的下一条语句。在循环中位于break后的语句将不再执行,循环也停止执行。

        break 语句不仅可以用在 for循环中,也可以用在 while 和 do-while 循环中。

        break 语句通常与 if 条件语句一起使用。

       

    2. continue 语句

        continue 语句用于,在某次循环中,我们不想执行完循环体中所有的语句,就像跳出次循环,开始执行下一次循环

       continue 可以用于 for 循环,也可以用于 while 和 do-while 循环。 在 for 循环中, continue 使程序先跳转到迭代部分,然后判断循环条件。如果为 true,继续下一次循环;否则终止循环。在while循环中,continue执行完毕后,程序将直接判断循环条件。continue 语句只能用在循环结构中。

    3.continue 和 break 语句的区别

        在循环结构中:

            (1). break 语句是终止某个循环,程序跳转到循环块外的下一条语句。

            (2). continue 语句是跳出本次循环,进入下一次循环。

    5. 循环结构

    Java 提供的最主要的三种循环结构: while 、do-while 、for 循环

     

    5对比:

    1. 语法不同

      while 循环语句 

      while(<条件>) 

      { 

          //循环体 

      } 

     

    // do-while循环语句 

      do 

      { 

          //循环体 

      }while(<条件>); 

     

    // for循环语句 

      for(初始化; 条件; 迭代) 

      { 

          //循环体 

      } 

    2. 执行顺序不同

        (1). while循环: 先进行条件判断、再执行循环体。如果条件不成立,退出循环。

        (2). do-while循环:先执行循环体,再进行条件判断,循环体至少执行一次。

        (3). for 循环:先执行初始化部分,再进行条件判断,然后执行循环体,最后进行迭代部分的计算。如果条件不成立,跳出循环。

    3. 适用情况不同

        在解决问题时,对于循环次数确定的情况,通常选用 for 循环。对于循环次数不确定的情况,通常选用 while 和 do-while 循环。    1. break 语句是终止某个循环,程序跳转到循环块外的下一条语句。

    2. continue 语句是跳出本次循环,进入下一次循环。

  • 相关阅读:
    LeetCode 461. Hamming Distance
    LeetCode 442. Find All Duplicates in an Array
    LeetCode 448. Find All Numbers Disappeared in an Array
    LeetCode Find the Difference
    LeetCode 415. Add Strings
    LeetCode 445. Add Two Numbers II
    LeetCode 438. Find All Anagrams in a String
    LeetCode 463. Island Perimeter
    LeetCode 362. Design Hit Counter
    LeetCode 359. Logger Rate Limiter
  • 原文地址:https://www.cnblogs.com/ppdpp/p/7635521.html
Copyright © 2011-2022 走看看