C#for Loop:遍历多个值
C#是Microsoft ASP.NET套件编程语言中使用的素语之一。大多数程序员倾向于C#或VB.NET。如果您熟悉C风格语言,C#最容易学习。使用C#,您可以稍后深入进入C ++,Java和其他C衍生语言。您需要知道的所有编程语言的一个方面是“for”循环。C#用于循环迭代在一定的值数上,并且它是作为任何语言的全职精通程序员的重要组成部分。
什么是循环?
每个新的程序员都学习循环和有条件的陈述。有几种类型的循环,但是对于循环可能是最常见的,与“执行”和“虽然”循环是第二个最常见的。对于您拥有要使用的特定迭代次数时,通常使用循环。迭代可以是静态值,例如硬编码成静态,常数变量,或者可以通过分配的值动态设置变量的整数值和循环。
for循环有两种类型:具有数值赋值迭代的常规“for”循环或遍历枚举集合的“foreach”循环。c#支持这两种类型的循环,它们在c# web表单或MVC应用程序中是必不可少的。
常规For循环
在设计应用程序时,通常在编码之前先编写应用程序的业务逻辑。从业务逻辑设计代码。当需要操作一组值时,可以使用for循环。For循环与数组变量密切相关,例如遍历存储在字符串或整数数组中的大量值。例如,如果您有一个电子商务网站,您可能想遍历多个产品以显示产品信息。这可以使用for循环来完成。
要开始使用for循环,首先需要一个数组。下面的例子是如何定义一个分配了5种颜色的字符串数组:
string []颜色=新字符串[5];颜色[0] =“红色”;颜色[1] =“绿色”;颜色[2] =“粉红色”;颜色[3] =“紫色”;颜色[4] =“橙色”;
注意“字符串”变量数据类型定义后括号。这向编译器指示您正在定义类型为“颜色”类型的“字符串”数组。定义数组时,必须实例化。“新字符串[5]”定义数组可以保持的值数。对新程序员的常见误解是数组可以持有的值数和数组索引之间的差异。在此示例中,“String [5]”包含五个值,但这些值从0索引为4.因此,当您使用for循环时,使用索引号0到4而不是1到5操作这些值。
使用数组启动到5个值,下一行代码为每个数组索引分配颜色。有几种方法可以执行此步骤,甚至可以添加另一个用于循环以分配值。您分配值的方式是静态或动态。在此示例中,静态值被分配给阵列,但稍后可以动态分配值。
下一步是设置for循环模板。for循环有特定的语法,以便循环遍历每个值。下面的c#代码是for循环语法,没有任何业务逻辑或函数(我们将在后面添加):
for(int i = 0; i <=颜色。长度 - 1; i ++){}
注意for循环有三个逻辑和变量定义。第一个定义存储在变量“i”中。在此示例中,变量I不仅使用“int”数据类型启动,而且还给出了值(值0)。您可以使用任何整数值启动循环,但大多数循环以0开头,因为数组从索引0开始。例如,如果您只想遍历数组的最后3个值,则会分配值2到I变量。
第二个逻辑部分定义了for循环遍历数组的次数。这一节的逻辑基本上是说“根据数组的长度遍历这个数组”。在这个例子中,“colors”包含5个值,所以是“colors”。Length”返回数字5。但是请注意,返回的是这个长度,但是减了1。这同样是由于数组索引值的方式。如果长度不减1,那么逻辑会说迭代直到循环到达第五个索引元素。具有5个值的数组的索引从0到4,因此数字5将抛出一个错误,因为第五个索引不存在。
循环逻辑元素的第三个是一个简单的增量分配。每次For循环执行一次迭代时,I变量都会递增一个。您不仅限于递增一个。您可以递减一个,递增两个或多个值或减少两个或多个值。您递增或递减for循环的方式取决于您的业务逻辑。
既然您有for循环设置,则添加您的业务逻辑。在此示例中,我们将颜色显示给用户。以下是循环逻辑的总数,可通过“颜色”阵列迭代并将每个颜色打印到屏幕:
for(int i = 0;我<颜色。长度 - 1; i ++){String color =颜色[i];Console.WriteLine(颜色);}
在此示例中,每个迭代的值存储在变量“颜色”中。我的每个值都递增,因此使用“颜色[i]获得新值。例如,变量i为第一次迭代分配值0。因此,第一个迭代将颜色“红色”分配给变量“颜色”,因为“红色”存储在索引0中(颜色[0])。
打印出5种颜色后,执行关闭支架后的用于循环退出和下一行代码。
有两种方法可以控制for循环的执行和迭代。理解“continue”和“break”关键字很重要。如果想提前退出for循环,可以使用" break "关键字。如果想跳过迭代,可以使用“continue”关键字。
例如,如果你想在第三次迭代后退出For循环,应用以下代码:
for(int i = 0;我<颜色。长度 - 1; i ++){String color =颜色[i];Console.WriteLine(颜色);如果(i == 2)//注意它不是3.当我= 2时,它是第三次迭代{break;}}
在某些情况下,您可能只想跳过一次迭代。例如,如果您不想打印出颜色“红色”,但要打印所有剩余颜色,则以下代码适用:
for(int i = 0;我<颜色。长度 - 1; i ++){String color =颜色[i];If (color == " red ") {continue;} Console.WriteLine(颜色);}
break和continue关键字让您可以控制如何在for循环中操作和打印数据,因此不需要遍历不想使用的值。
foreach循环
如您所见,循环的常规依赖于迭代值。在此示例中,“i”变量用于控制从阵列分配的迭代次数和值。用于循环的C#中使用的其他类型的常见变量是一个集合。集合是一种键值对或包含多种类型的值列表。例如,您可以包含某个类或对象的集合。字符串集合将具有字符串值的通用列表。使用枚举的集合,您可以通过每个键值对循环,而不会在上一个示例中的控制变量的麻烦,例如“i”。
要开始,您首先需要创建集合。在此示例中,集合是通用列表。通用列表数据类型包含基于定义的集合类型的值集合。例如,您可以创建一个字符串集合。以下示例创建了一种颜色列表,而不是使用数组,颜色分配给集合列表:
var colors = new list();colors.add(“红色”);colors.add(“绿色”);colors.add(“粉红色”);colors.add(“紫色”);colors.add(“橙色”);
注意,没有预定义的索引值数量。相反,该列表允许您继续添加值,而不必担心索引赋值。对集合赋值有一种替代方法。下面的语法执行相同的赋值,除了你删除了一些代码行:
var colors = new list{“红色”,“绿色”,“粉红色”,“紫色”,“橙色”};
下一步正在设置您的Foreach循环。Foreach循环与循环常规略有不同。以下语法为您的Foreach循环设置了模板:
Foreach (var color in colors) {}
请注意,Foreach循环比循环常规更简单。没有控制整数,而Foreach循环确切知道在没有任何逻辑操作的情况下究竟在哪里开始,其中在哪里结束。
在上面的例子中,每个值都被分配给变量“color”,而没有手动分配颜色。“var”关键字不指定值数据类型,它经常用于循环遍历更复杂的集合。在本例中,您可以使用" string "代替" var ",因为您知道返回值总是一个字符串。然而,大多数循环使用" var "关键字来避免数据类型分配错误。
设置Foreach控件结构后,您执行业务逻辑。在此示例中,我们执行与循环的常规功能相同的函数,并显示集合中的颜色分配。以下代码完成了foreach循环:
foreach(颜色为颜色){console.write(color +“,”);}
除了与循环常规类似的语法之外,Foreach循环还支持使用“中断”和“继续”关键字。以同样的方式退出循环或继续下一步迭代,您可以在Foreach循环中使用这些相同的关键字。例如,如果要在颜色为红色时跳过迭代,则可以使用以下语法:
foreach(颜色颜色颜色){if(颜色==“红色”)继续;console.write(color +“,”);}
Foreach循环更易于使用。大多数程序员避免使用阵列使用Foreach,但也可以使用此循环与阵列。
Regular For vs Foreach
对于新开发人员,您可能有一个问题何时使用常规循环以及何时使用foreach。使用foreach有两个原因:
1)如果您不知道底层数据类型,Foreach更加原谅。只要可以枚举变量(阵列或集合),那么您可以使用foreach。您还可以使用Foreach以及复杂的数据类型,例如类和字典键值类型。
2)Foreach循环消除了索引范围的可能性。如果您不确定您需要多少次迭代,并且无法在代码中计算它,请使用foreach。
3)需要根据索引值以外的其他因素进行迭代时。如果需要在数组或集合中跳转并添加和删除值,则foreach循环可以更容易地避免跳转到未定义的索引值。
循环的C#不是C#语言中唯一的控制结构,但它是迄今为止最常用的循环之一。几乎每个应用程序都有一个for循环,您需要在编程职业生涯中的某个点工作。通过更好地了解这些工作原理,您可以设计和工程师清洁的代码,以简化,更高效,具有更好的性能值。在您学习For循环之后,您可以更好地掌握其他循环,如“执行”和“虽然”,这与For循环有些复杂。