Оператор foreach и его использование при работе с массивами
Оператор foreach применяется для перебора элементов в специальным образом организованной группе данных, в том числе и в массиве. Удобство этого вида цикла заключается в том, что нам не требуется определять количество элементов в группе и выполнять перебор по индексу - мы просто указываем на необходимость перебрать все элементы группы. Синтаксис оператора:
foreach (<тип> <имя> in <группа>) <тело цикла>
где имя определяет локальную по отношению к циклу переменную, которая будет по очереди принимать все значения из указанной группы, а тип соответствует базовому типу элементов группы.
Ограничением оператора foreach является то, что с его помощью можно только просматривать значения элементов в группе данных, но нельзя их изменять.
Рассмотрим несколько примеров использования оператора foreach:
для работы с одномерными массивами:
2. static void PrintArray(string a, int [] mas)
3. {
4. Console.WriteLine(a);
5. foreach (int x in mas)Console.Write("{0} ", x);
6. Console.WriteLine();
7. }
для работы с двумерными массивами:
9. static int Sum (int [,] mas)
10.{
11. int s=0;
12. foreach (int x in mas) s += x;
13. return s;
14.}
для работы со ступенчатыми массивами:
16.static void PrintArray3(string a, int[][] mas)
17.{
18. Console.WriteLine(a);
19. for (int i = 0; i < mas.Length; i++)
20. {
21. foreach (int x in mas[i]) Console.Write("{0} ", x);
22. Console.WriteLine();
23. }
24.}
Дана последовательность целых чисел.
Замечание. Задачи из данного пункта решить двумя способами, используя одномерный массив, а затем двумерный. Размерность массива вводится с клавиатуры.
Заменить все положительные элементы противоположными им числами.
using System;
namespace ConsoleApplication2
{
class Class
{
static int [] Input ()
{
Console.WriteLine("введите размерность массива");
int n=int.Parse(Console.ReadLine());
int []a=new int[n];
for (int i = 0; i < n; ++i)
{
Console.Write("a[{0}]= ", i);
a[i]=int.Parse(Console.ReadLine());
}
return a;
}
static void Print(int[] a)
{
for (int i = 0; i < a.Length; ++i) Console.Write("{0} ", a[i]);