C# 4.0 полное руководство - 2011
Шрифт:
0
1
2
3
4
5
6
7
8
9
о
CN
CO
i/ч
40
r-
00
Os
lb
lb
JJ
QJ
lb
lb
lb
lb
lb
'cl
Q,
"cl
'E
TL
g.
В
В
В
В
й
В
в
В
В
03
03
03
03
03
03
cd
03
C/3
C/3
C/3
C/3
ХЛ
C/3
C/3
C/3
C/3
СЛ
Массивы
// Вычислить среднее арифметическое ряда значений.
using System;
class Average {
static void Main {
int[] nums = new int[10]; int avg = 0;
nums[0] = 99; nums[1] = 10; nums[2] = 100; nums[3] = 18; nums[4] = 78; nums[5] = 23; nums[6] = 63; nums[7] = 9; nums[8] = 87; nums[9] = 4 9;
for (int i=0; i < 10; i++) avg = avg + nums[i];
avg = avg / 10;
Console.WriteLine("Среднее: " + avg);
}
}
Результат выполнения этой программы выглядит следующим образом.
Среднее: 53
Инициализация массива
В приведенной выше программе первоначальные значения были заданы для элементов массива nums вручную в десяти отдельных операторах присваивания. Конечно, такая инициализация массива совершенно правильна, но то же самое можно сделать намного проще. Ведь массивы могут инициализироваться, когда они создаются. Ниже приведена общая форма инициализации одномерного массива:
тип[] имя_массива = {vail, val2, val3, ..., valN) ;
где vail -val N обозначают первоначальные значения, которые присваиваются по очереди, слева направо и по порядку индексирования. Для хранения инициализаторов массива в C# автоматически распределяется достаточный объем памяти. А необходимость пользоваться оператором new явным образом отпадает сама собой. В качестве примера ниже приведен улучшенный вариант программы, вычисляющей среднее арифметическое.
// Вычислить среднее арифметическое ряда значений.
using System;
class Average {
static void Main {
int[] nums = { 99, 10, 100, 18, 78, 23,
63, 9, 87, 49 };
int avg = 0;
for(int i=0; i < 10; i++)
avg = avg + nums[i]; avg = avg /10;
Console.WriteLine("Среднее: " + avg);
}
}
Любопытно, что при инициализации массива можно также воспользоваться оператором new, хотя особой надобности в этом нет. Например, приведенный ниже фрагмент кода считается верным, но избыточным для инициализации массива nums в упомянутой выше программе.
int[] nums = new int[] { 99, 10, 100, 18, 78, 23,
63, 9, 87, 49 };
Несмотря на свою избыточность, форма инициализации массива с оператором new оказывается полезной в том случае, если новый массив присваивается уже существую-щейгпеременной ссылки на массив. Например:
int[] nums;
nums = new int[] { 99, 10, 100, 18, 78, 23,
63, 9, 87, 49 };
В данном случае переменная nums объявляется в первом операторе и инициализируется во втором.
И последнее замечание: при инициализации массива его размер можно указывать явным образом, но этот размер должен совпадать с числом инициализаторов. В качестве примера ниже приведен еще один способ инициализации массива nums.