[Day08] CH06:重复的力量——回圈(上)

有时候同样一个程序需要执行多次,那我们总不可能把同样的一段程序码复制贴上吧?这样未免太没效率,也会使得程序杂乱不堪。这时候就会需要使用到「回圈」!

  • for 回圈

    假设今天我们需要印出 1 到 10 的数字,那我们会需要一个计数器(counter)来控制现在到第几个回圈了。

    for(int counter = 1; counter <= 10 ; counter++){
        System.out.printf("%d ", counter);
    }
    

    for 回圈开始执行时,会先宣告一个变数 counter 当作计数器(也可以在 for 回圈外宣告),并将它初始化为 1,接着用分号分隔,程序会检查 for 回圈中间的条件(counter <= 10)是否为真,若为真则会执行回圈内的程序,也就是印出 counter。执行完程序後,会执行第二个分号後的 couter++,将 counter 加 1,此时会再次判断 counter 是否小於等於10,若成立则继续执行,一直到 counter 超过 10,回圈便终止,不再执行回圈内程序,离开回圈。

    标准写法:

      for(初始化变数 ; 条件式 ; 递增/递减){
          statement;
      }
    

那如果我们今天不知道要执行几次呢?

  • while回圈

    假设今天我们要判断输入的数字是否为正数,若否则一直输入到大於 0,我们就无法得知需要执行几次。

    int inputNum = sc.nextInt();
    while(inputNum < 0){
        System.out.println("Please enter a positive number.");
        inputNum = sc.nextInt();
    }
    

    程序一开始会先判断条件 (inputNum < 0) 是否成立,若成立则执行回圈内程序,继续读入下一个数字,执行完後,又会再次判断条件是否成立,一直到不成立时,则会跳出回圈。

    标准写法:

      while(条件式){
          statement;
      }
    

    当然我们也可以用while回圈执行印出 1 到 10 的程序:

    int counter = 1;
    while(counter <= 10){
        System.out.printf("%d ", counter);
        counter++;
    }
    

那如果今天在进入回圈前,我们想先执行一段程序怎麽办呢?(哪那麽多如果 XD)

  • do…while 回圈

    以上两个程序变成先执行後判断:

    int counter = 1;
    do{
        System.out.printf("%d ", counter);
        counter++;
    } while(counter <= 10);
    
    int inputNum;
    do{
        System.out.println("Please enter a positive number.");
        inputNum = sc.nextInt();
    } while(inputNum < 0);
    

    首先会执行 do 回圈内之程序,才会判断 while 条件是否成立,若成立则继续执行,否则离开回圈。

    标准写法:

      do{
          statement;
      } while(条件式);
    

这是三个不同回圈的使用方式,是不是觉得很神奇呢?以上的语法都建议大家自己实做看看哦,那今天再来一题小试身手吧!

小试身手

印出 1 到 100 中所有的偶数。


<<:  灵异现象 - 我是你的恶梦

>>:  ASP.NET MVC 从入门到放弃 (Day3) -C#变数型态介绍

每个人都该学的30个Python技巧|技巧 5:各种运算子(上)(字幕、衬乐、练习)

昨天教的字串格式化你有没有学会了呢╰(*°▽°*)╯,还没学会的在等什麽,快回去复习呀!!!在此附上...

Day5 网页制作环境建设

在开始写网页前,我们要先把所需的工具准备好,就像锁螺丝需要用螺丝起子一样,写网页我们要准备好我们的编...

Gulp npm install 中的 --save 与 --save-dev 差异 DAY94

npm install --save (产品用) npm install --save-dev (开...

Day 10 打包 python 程序-2

打包 python 程序是个大坑,现在没有一个 python 打包器能完美打包所有 python 程...

<Day14> Ticks — 取得期货(Futures)逐笔成交资料

● 这章来示范如何取得期货(Futures)的ticks 回顾上一章,我们学会如何取得股票的tick...