for 和 foreach 的区别

来源:互联网 发布:excel03显示重复数据 编辑:程序博客网 时间:2024/05/18 09:18

  ------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

for 循环结构和 foreach 循环结构相比起来 我更加喜欢 for 循环, 原因是该循环结构的功能更加强大,下面给大家做一些例子,看看两者之间有什么区别,什么样的场合应该使用哪种循环。

1、为什么要使用循环结构?
     很多情况下,我们需要访问一系列的数据,比如说,想要将二维数组中的数据用表格的方式进行打印输出,那如果没有循环我们将会使用如下的方式来实现
  1.         public static void main(String[] args) {
  2.                 //创建一个二维数组,其实就是一张成绩表
  3.                 int score[][] = {{79,80,100},{80,66,93},{99,59,80},{99,59,88},{67,56,80},{87,89,90}};
  4.                 
  5.                 //打印二维数组中的内容
  6.                 System.out.println("学生编号\t数学\t英语\t语文");
  7.                 System.out.println(1+"\t"+score[0][0]+"\t"+score[0][1]+"\t"+score[0][2]);
  8.                 System.out.println(2+"\t"+score[1][0]+"\t"+score[1][1]+"\t"+score[1][2]);
  9.                 System.out.println(3+"\t"+score[2][0]+"\t"+score[2][1]+"\t"+score[2][2]);
  10.                 System.out.println(4+"\t"+score[3][0]+"\t"+score[3][1]+"\t"+score[3][2]);
  11.                 System.out.println(5+"\t"+score[4][0]+"\t"+score[4][1]+"\t"+score[4][2]);
  12.                 System.out.println(6+"\t"+score[5][0]+"\t"+score[5][1]+"\t"+score[5][2]);
  13.         }
复制代码
    从上面的例子可以看出,如果二维数组中的内容越多,那么我们就需要写更多的代码来打印数组中的数据。
     然而为了简化我们的代码量,循环结构就派上用场了。
2、如何使用循环结构?
     下面我们来看看使用循环结构如果简化我们的代码量
  1. public static void main(String[] args) {
  2.          //创建一个二维数组,其实就是一张成绩表
  3.          int score[][] = {{79,80,100},{80,66,93},{99,59,80},{99,59,88},{67,56,80},{87,89,90}};
  4.                 
  5.          //打印二维数组中的内容
  6.         System.out.println("学生编号\t数学\t英语\t语文");
  7.                 
  8.         //使用循环结构打印数组
  9.         for (int i = 0; i < score.length; i++) {
  10.               System.out.println(i+1+"\t"+score[i][0]+"\t"+score[i][1]+"\t"+score[i][2]);
  11.         }
  12.         }
复制代码
     可以看出,使用循环结构进行处理后,打印的代码只写了一遍,而不管是几千条数据还是有几万条数据,打印的代码也是只写一遍,照样可以全部打印出来,这就是循环结构所带来的好处。
      那么循环结构除了使用 for 循环之外,还有一个循环结构,那就是 foreach 循环, 其实 foreach 循环 和 for 循环结构的写法是类似的,都是使用 for 关键字,只是循环表达示不一样。
      如何不一样?  我们来看下面的例子
   
  1.         public static void main(String[] args) {
  2.                 //创建一个二维数组,其实就是一张成绩表
  3.                 int score[][] = {{79,80,100},{80,66,93},{99,59,80},{99,59,88},{67,56,80},{87,89,90}};
  4.                 
  5.                 //使用循环结构打印数组
  6.                 int index = 1;//声明循环变量
  7.                 
  8.                 for (int[] i : score) {
  9.                         
  10.                         System.out.println(index+"\t"+i[0]+"\t"+i[1]+"\t"+i[2]);
  11.                         
  12.                         index++;//递加循环变量
  13.                 }
  14.         }
复制代码


     可以看出,两者循环在表达示中不大一样。
     第一、for 循环需要自己去指定循环的次数,而 foreach 不需要指写循环次数
     第二、foreach 循环中,循环变量的定义和递加要写在括号外面, 而 for 循环则可将循环变量的定义和递加写在里边
     第三、使用foreach循环中来的结果如果是一个基本数据类型的值,则该值不能进行赋值,如果是引用类型的值,就可以赋值。
3、在什么情况下使用循环结构?
     那现在同样的一道题,使用 for 和 foreach 都能够做到,那什么时候用 for ? 什么时候用 foreach 呢?
     第一、foreach 常用在集合遍历上
     第二、foreach 一般用来读数据,for 一般用来操作数据(如:修改)
     第三、for通常用于遍历已知次数的集合,foreach 通常用于遍历未知次数的集合

     好了,关于 “for 和 foreach 的区别 ” 就写到这,呃, 欢迎各位大神来指点一二。
0 0
原创粉丝点击