C中foreach用法(C++foreach)
求:C#中 foreach() 的用法,
说明:
foreach 对象是集合。
集合的定义下边有。
像数组、List等都是集合。具体的去MSDN上查询。上边讲的很全面。
下列示例按照元素的顺序打印出一个二维数组中的各个元素的值:
using System;
class Test
{
static void Main() {
double[,] values = {
{1.2, 2.3, 3.4, 4.5},
{5.6, 6.7, 7.8, 8.9}
};
foreach (double elementValue in values)
Console.Write("{0} ", elementValue);
Console.WriteLine();
}
}
和for循环的区别:
for循环油条件判断,可以限制执行条件。foreach没有。对集合对象的遍历,foreach更常用。
以下是MSDN上的。查看网址:
foreach 语句用于枚举一个集合的元素,并对该集合中的每个元素执行一次相关的嵌入语句。
foreach-statement:(foreach 语句:)
foreach ( type identifier in expression ) embedded-statement(foreach ( 类型 标识符 in 表达式 ) 嵌入语句)
foreach 语句的类型和标识符声明该语句的迭代变量。迭代变量相当于一个其范围覆盖整个嵌入语句的只读局部变量。在 foreach 语句执行期间,迭代变量表示当前正在为其执行迭代的集合元素。如果嵌入语句试图修改迭代变量(通过赋值或 ++ 和 -- 运算符)或将迭代变量作为 ref 或 out 参数传递,则将发生编译时错误。
foreach 语句的表达式的类型必须是集合类型(下面有它的定义),且必须有一个从该集合的元素类型到迭代变量的类型的显式转换(第 6.2 节)。如果该表达式具有 null 值,则将引发 System.NullReferenceException。
如果类型 C 实现了 System.Collections.IEnumerable 接口,或者能够满足下列(有关实现集合模式的)条件,就称它是集合类型:
C 包含一个 public 实例方法,它带有签名 GetEnumerator(),且返回值属于结构类型、类类型或接口类型(后文中用 E 表示该返回值的类型)。
E 包含一个 public 实例方法,此方法具有签名 MoveNext() 和返回类型 bool。
E 包含一个名为 Current 的 public 实例属性,此属性允许读取当前值。此属性的类型称为该集合类型的元素类型。
一个实现 IEnumerable 的类型也是集合类型,即使它不满足上述条件。(这是可能的,如果该类型通过“显式接口成员实现”的方式实现某些 IEnumerable 成员,关于该方式详见第 13.4.1 节中的说明。)
System.Array 类型(第 12.1.1 节)是集合类型,而由于所有的数组类型都从 System.Array 派生,foreach 语句中允许使用任何数组类型表达式。foreach 按如下顺序遍历数组的元素:对于一维数组,按递增的索引顺序遍历元素,从索引 0 开始,到索引 Length ? 1 结束。对于多维数组,按这样的方式遍历元素:首先增加最右边维度的索引,然后是它的左边紧邻的维度,依此类推直到最左边的那个维度。
JSP 中 JSTL
c:forEach标签的作用就是迭代输出标签内部的内容。它既可以进行固定次数的迭代输出,也可以依据集合中对象的个数来决定迭代的次数。
c:forEach标签,需要与el表达式联合使用
c:forEach标签的语法定义如下所示。
c:forEach var="每个变量名字" items="要迭代的list" varStatus="每个对象的状态"
begin="循环从哪儿开始" end="循环到哪儿结束" step="循环的步长"
循环要输出的东西
/c:forEach
c:forEach标签具有以下一些属性:
var:迭代参数的名称。在迭代体中可以使用的变量的名称,用来表示每一个迭代变量。类型为String。
items:要进行迭代的集合。对于它所支持的类型将在下面进行讲解。
varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息。
begin:如果指定了items,那么迭代就从items[begin]开始进行迭代;如果没有指定items,那么就从begin开始迭代。它的类型为整数。
end:如果指定了items,那么就在items结束迭代;如果没有指定items,那么就在end结束迭代。它的类型也为整数。
step:迭代的步长。
c:forEach标签的items属性支持Java平台所提供的所有标准集合类型。此外,您可以使用该操作来迭代数组(包括基本类型数组)中的元素。
jsp中c标签foreach的使用
FOREACH标签部分.
首先确认MAP中有没有取得数据.
c:forEach [var="varName"] items="" [varStatus="varStatusName"]
FOREACH标签含义: items存放被迭代的集合对象, var用来存放现在指到的成员。
3. var元素输出的参数需要与MAP中存放的参数对应,(通常用一个JAVABEAN对像封装放在LIST等集合对像中).案例中的,NAME等值是否在JAVABEAN中存在.如果存在,EL表达式写法为: ${entry.name}即可直接输入,其他值也是一样.
IF标签部分.
EL表达式有自己的判断方式,无法直接用==,!=,=,=直接判断.
如果要判断封装对像是否为空.请用empty关键字....
以下是IF标签与FOREACH综合用法的示例:
!-- 如果集合中不为空,输出数据! --c:if test="${!empty adminlist}" c:forEach items="${adminlist}" var="list" tr td${list.id}/td td${list.name}/td td${list.pwd}/td /tr /c:forEach /c:if!-- 如果集合中为空,直接在HTML中输出提示! -- c:if test="${empty adminlist}" 未能找到数据! /c:if
为了能更好的显示出FOREACH的效果.通常先用choose标签进行判断,以下是JSP页面中的完整标签片段示例:(IF标签不再举例.)
table cellpadding="5" cellspacing="1" border="0" width="100%" align="center" tr align="center" tdID/td td用户帐号/td td用户密码/td td colspan="2"管理/td /tr c:choose c:when test="${!empty userlist}" c:forEach items="${userlist}" var="list" tr td${list.id}/td td${list.name}/td td${list.pwd}/td td a href="UserEdit.jspx?action=updateid=${list.id}"编缉/a /td td div onClick="return del();" a href="UserEdit.jspx?action=deleteid=${list.id}"删除/a /div /td /tr /c:forEach /c:when c:otherwise tr td colspan="5"未能找到符合条件的数据!/td /tr /c:otherwise /c:choose/table
关于java中c标签foreach的用法?
c:forEach 为循环控制,它可以将集合(Collection)中的成员循序浏览一遍。运作方式为当条件符合时,就会持续重复执行c:forEach的本体内容。
语法
语法1:迭代一集合对象之所有成员
c:forEach [var="varName"] items="collection" [varStatus="varStatusName"]
[begin="begin"] [end="end"] [step="step"]
本体内容
/c:forEach
语法2:迭代指定的次数
c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]
本体内容
/c:forEach
var 用来存放现在指到的成员
items 被迭代的集合对象varStatus 用来存放现在指到的相关成员信息
begin 开始的位置
end 结束的位置
step 每次迭代的间隔数
·假若有begin属性时,begin必须大于等于 0
·假若有end属性时,必须大于begin
·假若有step属性时,step必须大于等于0
Null 和 错误处理
·假若items为null时,则表示为一空的集合对象
·假若begin大于或等于items时,则迭代不运算
说明
如果要循序浏览一个集合对象,并将它的内容显示出来,就必须有items属性。
范例
下面的范例 Core_forEach.jsp是将数组中的成员一个个显示出来的:
在c:foreach里面可不可以用下标做循环判断
jsp页面判断循环了几次只能用变量记录,比如用index这个参数来做累计。
c:forEach标签的语法定义如下所示。
c:forEach var="name" items="expression" varStatus="name"
begin="expression" end="expression" step="expression"
body content
/c:forEach
c:forEach标签具有以下一些属性:
var:迭代参数的名称。在迭代体中可以使用的变量的名称,用来表示每一个迭代变量。类型为String。
items:要进行迭代的集合。对于它所支持的类型将在下面进行讲解。
varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息。
begin:如果指定了items,那么迭代就从items[begin]开始进行迭代;如果没有指定items,那么就从begin开始迭代。它的类型为整数。
end:如果指定了items,那么就在items结束迭代;如果没有指定items,那么就在end结束迭代。它的类型也为整数。
step:迭代的步长。
index:当前这次迭代从0开始的迭代索引。
foreach的用法c语言和c#
1、C#里面才有foreach用法,C语言中只有for语句。
2、C#中 foreach 用法:
foreach(Type t in arrys){ // 调用foreach语句
//循环体内自定义操作
}
//Type:需要遍历每一个的对象的类型
//t:每一个对象
//arrays:需要遍历的对象数组