作者:CHAITANYA SINGH

来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=21

循环用于反复执行同一组语句,直到满足特定条件为止。在Java中,我们有三种类型的基本循环:for、while和do-while。在本教程中,我们将学习如何在Java中使用for循环(for loop)。

for循环的语法:

1
2
3
4
for(初始化initialization; 循环条件condition; 递增/递减increment/decrement)
{
   statement(s);
}

for循环的执行流程

当程序在运行的时候,解释器一直在跟踪要执行的语句,我们称之为控制流,或者程序的执行流程。

第一步:在for循环中,首先进行初始化,在整个for循环中,初始化部分的语句只在开始的时候执行一次。

第二步:在每次迭代时评估for循环中的条件,如果条件为true(真)则执行循环体内的语句。一旦条件返回false(假),for循环中的语句就不会执行,程序就跳到for循环外面的语句上运行。

第三步:每次执行for循环体后,程序回头执行for循环的递增/递减部分,更新循环计数器。

第四步:第三步后,程序跳转到第二步,重新评估循环条件,决定是继续执行在for循环内部的语句还是跳出for循环执行后面的语句。

简单for循环示例

1
2
3
4
5
6
7
class ForLoopExample {
    public static void main(String args[]){
         for(int i=10; i>1; i--){
              System.out.println("The value of i is: "+i);
         }
    }
}

输出:

1
2
3
4
5
6
7
8
9
The value of i is: 10
The value of i is: 9
The value of i is: 8
The value of i is: 7
The value of i is: 6
The value of i is: 5
The value of i is: 4
The value of i is: 3
The value of i is: 2

在上面的程序中:

int i = 1是初始化表达式;i > 1是否继续循环的条件(布尔表达式,满足条件就继续循环,不满足条件就跳出循环);i-是递减操作

死循环

循环条件的布尔表达式和递增/递减运算之间的互相协调非常重要,现在让我们来看看下面这个例子:

1
2
3
4
5
6
7
class ForLoopExample2 {
    public static void main(String args[]){
         for(int i=1; i>=1; i++){
              System.out.println("The value of i is: "+i);
         }
    }
}

这是一个死循环,我们初始化里给变量i赋值为1,循环条件是i>=1,因为i的值是1,后面的递增运算i++只能让变量i的值越来越大,所以这个循环条件i>=1永远都不会返回false。这最终会导致死循环条件。因此可见,增量/递减操作的结果必须是能确保在某个时间点上,循环条件的返回值为false,这样程序才可以跳出这个for循环。

下面是另一个for循环的死循环的例子:

1
2
3
4
// infinite loop
for ( ; ; ) {
    // statement(s)
}

用for循环遍历数组(array)的例子:

在这里,我们使用for循环遍历和显示数组里面的每个元素。

1
2
3
4
5
6
7
8
9
class ForLoopExample3 {
    public static void main(String args[]){
         int arr[]={2,11,45,9};
         //i starts with 0 as array index starts with 0 too
         for(int i=0; i<arr.length; i++){
              System.out.println(arr[i]);
         }
    }
}

输出:

1
2
3
4
2
11
45
9

增强型for循环

当您想要遍历数组/集合里面的每个元素时,增强型的for循环很有用,非常易于编写和理解。

让我们采用上面编写的相同示例,并使用增强型for循环来重写它。

1
2
3
4
5
6
7
8
class ForLoopExample3 {
   public static void main(String args[]){
      int arr[]={2,11,45,9};
      for (int num : arr) {
         System.out.println(num);
      }
   }
}

输出:

1
2
3
4
2
11
45
9

注:在上面的示例中,我在增强型的for循环中将变量num的数据类型声明为int(整数型)。我们将根据数组的数据类型来决定如何声明这个变量的数据类型。例如,String类型的增强型for循环需要将这个变量声明为String,如下所示:

1
2
3
4
String arr[]={"hi","hello","bye"};
for (String str : arr) {
         System.out.println(str);
}

Java中的for循环——通过示例学习Java编程(9)的更多相关文章

  1. Java中的do-while循环——通过示例学习Java编程(11)

    作者:CHAITANYA SINGH 来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=22&cid=0 在上一篇教程中,我们讨论了w ...

  2. Java中的break循环——通过示例学习Java编程(13)

    作者:CHAITANYA SINGH 来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=24 break语句通常用于以下两种情况: (A)使 ...

  3. Java中的while循环——通过示例学习Java编程(10)

    作者:CHAITANYA SINGH 来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=20 在上一个教程中,我们讨论了for循环的用法.在本 ...

  4. Java中的if-else语句——通过示例学习Java编程(7)

      作者:CHAITANYA SINGH 来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=18 当我们需要根据一个条件执行一组语句时,我们需 ...

  5. Java中的continue语句——通过示例学习Java编程(12)

    作者:CHAITANYA SINGH 来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=23 continue语句主要是用在循环代码块中.当 ...

  6. Java中的switch语句——通过示例学习Java编程(8)

    作者:CHAITANYA SINGH 来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=19 当我们在代码逻辑中有多个选项,而且需要为每个选 ...

  7. [转帖]java中的for循环

    java中的for循环 https://baijiahao.baidu.com/s?id=1621622990642364099&wfr=spider&for=pc 发现自己连 for ...

  8. 《疯狂Java讲义》(一) ---- 关于学习Java的反思

    "听到Spring很火,就立马买来一本Spring的书来读,最后结果往往是失败,因为这种学习没有积累,没有根基,学习过程中困难重重,每天都被一些相同.类似的问题所困扰,起初热情十足,经常上论 ...

  9. Java中的构造函数——通过示例学习Java编程(14)

      作者:CHAITANYA SINGH 来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=25 构造函数是用来初始化新创建的对象的代码块. ...

随机推荐

  1. Socket对象以及异常

    1  socket构造器: public Socket() 创建一个Socket套接字 public Socket(InetAddress address,int port) 创建一个指定IP和端口的 ...

  2. [hdu1712]ACboy needs your help分组背包

    题意:一共$m$天,$n$门课程,每门课程花费$i$天得到$j$的价值,求最后获得的最大价值 解题关键:分组背包练习,注意循环的顺序不能颠倒 伪代码: $for$ 所有的组$k$   $for{\rm ...

  3. 树莓派 Learning 002 装机后的必要操作 --- 02 解决中文问题

    树莓派 装机后的必要操作 - 解决中文问题 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 每一块树莓派,装机后都应该执行的步骤 刚装机后, ...

  4. unreal3启动流程总结

    一.启动代码所在工程为Launch(win32),可为所有同一codebase项目共享. 但共享方式很不智能,是通过在源文件中添加大量#if/else条件编译宏来实现,即各项目在自己的工程中添加[程序 ...

  5. p2279&bzoj1217 消防局的设立

    传送门(洛谷) 传送门(bzoj) 题目 2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地.起初为了节约材料,人类只修建了n-1条道路来 连接这些基地,并且每两个基地都能够通过道路到达, ...

  6. jquery提供的数据提交方式2-ajax

    以前介绍过ajax提交方式.但仅仅是个例子,今天将详细介绍jquery中的$.ajax,$.get,$.post方法. 一,首先介绍$.ajax方法参数(以下参数来自:http://www.cnblo ...

  7. SQL笔记:基础篇

    1.BETWEEN AND (查询某个区间的数据) 例如:查询user表中年龄在15-30岁的人 SELECT * FROM user WHERE age between 15 and 30 2.IN ...

  8. rest framework 节流

    一.简单节流示例 所谓节流就是控制用户访问频率,这里分为匿名用户(非登录用户)和登录用户的限制. 匿名用户:根据其 IP 限制其频率 登录用户:IP.用户名都 OK 获取用户请求 IP:request ...

  9. FUI- 我离钢铁侠还差几步?

    本文来自网易云社区 作者:马宝 什么是FUI本文不累赘的可以自行Google,喜欢科幻的同学们都看一张图就能感受到FUI的魅力. 本文算是一篇所见即所的,可边学边干的原创教程.总结全文就一句话,&qu ...

  10. 学习笔记:首次进行JUnit+Ant构建自动的单元测试(二)

    关键字:JUnit,Ant,单元测试 终于把JUnit+Ant构建单元测试的大概了解了,其实我实践的过程是对了,只是指导博客(看到这里不懂请看我上一篇博客)本身的错误“成功”把我带入“坑”,有时候网友 ...