`
Jeenry119
  • 浏览: 69415 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

foreach中循环次数操作

阅读更多
引用

foreach中循环次数操作2009-10-14 11:42jstl 的foreach语句中有可以获得循环次数的变量,以前不清楚,这次要使用,在网上查了一下,记下来,方便以后学习。

<c:forEach>标签的语法定义如下所示。

<c:forEach var="name" items="expression" varStatus="name"

begin="expression" end="expression" step="expression">

body content

</c:forEach>

<c:forEach>标签具有以下一些属性:

l var:迭代参数的名称。在迭代体中可以使用的变量的名称,用来表示每一个迭代变量。类型为String。

l items:要进行迭代的集合。对于它所支持的类型将在下面进行讲解。

l varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息。

l begin:如果指定了items,那么迭代就从items[begin]开始进行迭代;如果没有指定items,那么就从begin开始迭代。它的类型为整数。

l end:如果指定了items,那么就在items[end]结束迭代;如果没有指定items,那么就在end结束迭代。它的类型也为整数。

l step:迭代的步长。

<c:forEach>标签的items属性支持Java平台所提供的所有标准集合类型。此外,您可以使用该操作来迭代数组(包括基本类型数组)中的元素。它所支持的集合类型以及迭代的元素如下所示:

l java.util.Collection:调用iterator()来获得的元素。

l java.util.Map:通过java.util.Map.Entry所获得的实例。

l java.util.Iterator:迭代器元素。

l java.util.Enumeration:枚举元素。

l Object实例数组:数组元素。

l 基本类型值数组:经过包装的数组元素。

l 用逗号定界的String:分割后的子字符串。

l javax.servlet.jsp.jstl.sql.Result:SQL查询所获得的行。

不论是对整数还是对集合进行迭代, <c:forEach>的varStatus属性所起的作用相同。和var属性一样,varStatus用于创建限定了作用域的变量(改变量只在当前标签体内起作用)。不过,由varStatus属性命名的变量并不存储当前索引值或当前元素,而是赋予javax.servlet.jsp.jstl.core.LoopTagStatus类的实例。该类包含了一系列的特性,它们描述了迭代的当前状态,如下这些属性的含义如下所示:

l current:当前这次迭代的(集合中的)项。

l index:当前这次迭代从0开始的迭代索引。

l count:当前这次迭代从1开始的迭代计数。

l first:用来表明当前这轮迭代是否为第一次迭代,该属性为boolean类型。

l last:用来表明当前这轮迭代是否为最后一次迭代,该属性为boolean类型。

l begin:begin属性的值。

l end:end属性的值

l step:step属性的值

下面就来看一个个基本的例子,表格隔行背景色变化
<c:forEach var="item" items="${contents}" varStatus="status">
<tr <c:if test="${status.count%2==0}">bgcolor="#CCCCFE" </c:if> align="left">
xxx </tr>
</c:forEach>

为了明确理解index和count的区别,我做了一个测试:

<c:forEach items="${allList}" var="al" varStatus="vs">
      ${vs.index }   ${vs.count }
    <br/>
   </c:forEach>
输出结果为:

0 1

1 2

2 3

3 4


分享到:
评论
1 楼 dushanggaolou 2012-03-12  
解释的很详细。

相关推荐

    Smarty foreach控制循环次数的实现详解

    下面我们将深入探讨如何在Smarty中使用`foreach`循环以及如何控制循环次数。 1. **获取数组长度** 在Smarty中,可以通过管道操作符 `|` 配合内置的`count`函数来获取数组的长度。例如: ```smarty {$array|count...

    For 和 Foreach 的效率问题

    这种灵活性使得`for`循环在处理特定索引或者有精确循环次数需求的场景下非常有用。例如,遍历数组时,`for`循环可以快速访问每个元素,且能直接控制循环的起止。 相比之下,`foreach`循环是为简化遍历集合或数组而...

    浅谈php中的循环while、do…while、for、foreach四种循环

    foreach循环专门用于遍历数组,每次迭代时,它会取出数组中的一个元素并赋值给指定变量。基本语法如下: ```php foreach ($数组 as $值变量) { // 要执行的代码 } ``` 例如,遍历一个包含五个元素的数组并打印: ``...

    for foreach效率测试代码

    在"for foreach效率测试代码"中,我们看到的是对这两种循环方式进行性能比较,执行1000000万次字符串遍历操作。这种测试通常是为了评估在大量数据处理时,哪种循环方式更高效。 在大多数情况下,`foreach`循环看...

    PHP 数组 for foreach 循环 array_column函数.rar

    2. **foreach循环**:`foreach`循环是专门处理数组和迭代器的,其语法更简洁,更适合遍历数组。有两种形式: ```php // 值作为引用传递 foreach ($array as &$value) { // 循环体内的代码 } // 值不作为引用...

    JMETER ForEach循环控制器

    在JMeter测试计划中,`ForEach循环控制器`是一个非常关键的逻辑控制器,它主要用于遍历用户自定义的一系列变量并执行相应的操作。通常,`ForEach循环控制器`不会单独使用,而是与用户定义的变量组件结合,用于在测试...

    C_中foreach遍历的用法2015.docx

    - `for`循环通常需要手动管理索引,适用于需要精确控制循环次数或需要在循环体内修改数组元素的情况。 - `foreach`循环则更加简洁,适用于只读操作,尤其是遍历数组或集合。 6. **示例应用**: - 一个常见的应用...

    老生常谈foreach(增强for循环)和for的区别

    foreach 语句主要用于遍历数组或集合,适用于循环次数未知,或者计算循环次数比较麻烦的情况下使用效率更高。 foreach 语句的优点是可以简化代码,提高代码的可读性和维护性。例如,在遍历集合时,foreach 语句可以...

    PHP中for循环与foreach的区别

    在这个结构中,`$初始化`用来设置循环变量的初始值,`$条件`定义了循环继续执行的条件,而`$增量/递减`则是在每次循环后对循环变量的操作。例如,遍历一个数组的`for`循环可能如下所示: ```php $array = [1, 2, 3,...

    PHP 数组 for foreach 循环 array_column函数 返回多列(指定返回多个字段).rar

    处理数组时,循环结构如`for`和`foreach`是必不可少的工具,它们允许开发者遍历数组中的每个元素并执行相应的操作。而`array_column`函数则是一个非常实用的功能,它能从多维数组中提取出特定列的数据,这对于数据...

    forEach.rar

    这种方式减少了循环次数,但需要注意的是,如果内存限制严格或者Map的查找操作不是常数时间(例如,使用`HashMap`而非`ConcurrentHashMap`在多线程环境下),这种优化可能并不合适。 此外,Java 8引入的`Stream API...

    深入理解java中for和foreach循环

    在Java编程语言中,`for`循环和`foreach`(增强型for循环)是两种常见的迭代结构,用于遍历数组和集合。这篇文章将深入探讨这两种循环的使用方式、特点以及它们之间的区别。 首先,让我们来看一下传统的`for`循环。...

    MATLAB工具箱大全-将多重循环转为单重循环-For-Each

    在MATLAB编程中,优化代码效率是至关重要的,特别是...通过减少循环次数,我们可以显著提升代码的执行速度。在编写MATLAB程序时,应尽可能考虑如何利用`for-each`和其他内置函数来替代多重循环,以提高代码的运行效率。

    PHP中的函数– foreach()的用法详解

    但是,`for`循环在某些特定场景下(如已知数组长度或需要精确控制循环次数时)可能更为合适。 总之,`foreach`是PHP中处理数组不可或缺的一部分,它简化了遍历和操作数组元素的过程,是数组处理中的一个强大工具。...

    java基础for循环练习题

    在"java基础for循环练习题"中,我们通常会遇到几种类型的`for`循环,包括基本的`for`循环、增强型`for`循环(也称为foreach循环),以及在数组和集合中的应用。下面我们将深入探讨这些知识点。 1. **基本的for循环*...

    深入for,while,foreach遍历时间比较的详解

    它可以非常精确地控制循环次数,并且由于其通常编译时就能确定循环次数,因此,在某些编译型语言中可以得到较高的执行效率。在PHP中,for循环同样能够提供稳定的性能。文章中的for循环示例代码首先创建了一个包含...

    kettle的循环

    在这些循环中,你可以设置循环次数或者基于某个变量或结果来控制循环结束。 2. Transformation的循环:在Transformation中,循环通常通过`Step Meta Interface`的`isForEachRow()`方法实现。如果该方法返回`true`,...

    php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法

    - `foreach` 专为遍历数组或可迭代对象设计,无需知道循环次数。 6. **`Iterator` 接口** PHP 5 引入了 `Iterator` 接口,实现了该接口的对象可以被像数组一样遍历,即使它们不是真正的数组。 理解并熟练运用...

    编程中的循环语句讲解

    1. **for循环**:for循环是最常用的循环结构之一,它适用于已知循环次数的情况。在Python中,for循环常用于遍历序列(如列表或字符串): ```python for item in sequence: # 执行代码块 ``` 2. **while循环**...

Global site tag (gtag.js) - Google Analytics