C中foreach用法(C++foreach)

http://www.itjxue.com  2023-01-30 05:01  来源:未知  点击次数: 

求: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:需要遍历的对象数组

(责任编辑:IT教学网)

更多

推荐Flash动画制作教程文章