КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Оператор foreach
Оператор foreach застосовується для перебору елементів в організованій групі даних. Масив є саме такою групою. Зручність цього циклу полягає в тому, що не потрібно визначати кількість елементів в групі і виконувати їх перебір по індексу. Синтаксис оператора:
foreach (тип ім'я in вираз) тіло_циклу
Ім'я задає локальну по відношенню до циклу змінну, яка по черзі набуватиме всіх значень з масиву. В якості виразу найчастіше застосовується ім'я масиву. У простому або складеному операторові, що є тілом циклу, виконуються дії із змінною циклу. Тип змінної повинен відповідати типу елементу масиву.
Наприклад, заданий масив: int[] а = {24, 50, 18, 3, 16, -7, 9, -1 };
Виведення цього масиву на екран за допомогою оператора foreach виглядає таким чином: foreach (int х in а) Console.WriteLine(х);
У лістингу 6.8 вирішується те ж завдання, що і в лістингу 6.1, але з використанням циклу foreach. Зверніть увагу на те, наскільки зрозуміліше стала програма.
Лістинг 6.8. Робота з одновимірним масивом з використанням циклу foreach
using System; namespace ConsoleApplication1 { class Classl { static void Main() { const int n = 6; int[] a = new int[n] {3, 12, 5, -9, 8, -4}; Console.WriteLine("Исходный массив:");
foreach (int elem in a) Console.Write("\t" + elem); Console.WriteLine();
long sum = 0; // сума від’ємних елементів int num = 0; // кількість від’ємних елементів foreach (int elem in a) if (elem < 0) { sum += elem; num ++; }
Console.WriteLine("Сума від’ємних елементів= " + sum); Console.WriteLine("Кількість від’ємних елементів = " + num); int max = a[0]; // максимальний елемент foreach (int elem in a) if (elem > max) max = elem; Console.WriteLine("Максимальний елемент = " + max); } } }
Обмеженням оператора foreach є те, що з його допомогою можна тільки переглядати значення в групі даних, але не змінювати їх.
6.7. Масиви об’єктів
При створенні масиву, що складається з елементів посилального типу, пам'ять виділяється тільки під посилання на елементи, а самі елементи необхідно розмістити в хіпові явним чином. Як приклад створимо масив з об'єктів деякого класу Monster:
using System; namespace ConsoleApplication1 { class Monster {
string name; // закриті поля int health, ammo;
public Monster() { this.health = 100; this.ammo = 100; this.name = "Noname"; } public Monster(string name) : this() { this.name = name; } public Monster(int health, int ammo, string name) { this.health = health; this.ammo = ammo; this.name = name; } public int Health { get { return health; } set { if (value > 0) health = value; else health = 0; } } public int Ammo { get { return ammo; } set { if (value > 0) ammo = value; else ammo = 0; } } public string Name { get { return name; } } public void Passport() { Console.WriteLine("Monster {0} \t health = {1} ammo = {2}", name, health, ammo); } } class Classl { static void Main() { Random rnd = new Random(); const int n = 5; Monster[] stado = new Monster[n]; // 1 for (int i = 0; i < n; i ++) // 2 { stado[i ] = new Monster(rnd.Next(1, 100), rnd.Next(1, 200), "Crazy" + i.ToString()); } foreach (Monster x in stado) x.Passport(); // 3 } } } Результат роботи програми:
У операторові 1 виділяється п'ять елементів пам'яті під посилання на екземпляри класу Monster. Ці посилання заповнюються значенням null. У циклі 2 створюються п'ять об'єктів. Цикл 3 демонструє зручність застосування оператора foreach для роботи з масивом.
6.8. Символи і рядки Обробка текстової інформації є, ймовірно, одним з найпоширеніших завдань в сучасному програмуванні, і С# надає для його вирішення широкий набір засобів: окремі символи, масиви символів, змінні і незмінні рядки, а також регулярні вирази.
Дата добавления: 2014-12-27; Просмотров: 476; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |