Тема 7. Специальные типы
Массивы неправильной формы
Многомерные массивы
Методы для работы с массивами
Перебор элементов массива Оператор for и foreach
Для перебора элементов массива можно воспользоваться либо циклом for, либо применить специальный оператор foreach
Синтаксический блок оператора foreach имеет вид:
Оператор foreach ::=
foreach ( <тип> <идентификатор итерационной переменной > in < Идентификатор массива>)
Пример. Написать программу, в которой задается массив длинное 5 элементов типа int, и выводится на консоль при помощи оператора foreach.
using System;
class mass
{
public static void Main()
{
int [] qqq = {1, 2, 3, 4};
foreach(int temp in qqq)
{
Console.WriteLine(temp);
}
Console.ReadLine();
}
}
Довольно часто возникает необходимость в использовании многомерных массивов.
Синтаксический блок имеет вид ::=
Объявление массива ::=
<Базовый тип> [ , , … , ] <Идентификатор массива>
Создание массива ::=
new <Базовый тип> [ <Длина_0>, …, Длина_N]
Присваивание ссылки на массив ::=
<Идентификатор массива> =
new <Базовый тип>[<Длина_0>, …,< Длина_N>]
Доступ к элементу массива ::=
<Идентификатор массива>[чис_знач_изм_1, …,чис_знач_изм_N]
Примечания:
<Базовый тип> в объявлении должен быть идентичен <Базовый тип>в операторе порождения объекта.
<Длина массива> должна быть положительна и принадлежать к типу
неявно преобразуемому к типу int.
Пример. Написать программу, которая формирует и выводит на экран массив размером 5х5 и заполняет его единицами.
using System;
class qqq
{
public static void Main()
{
int [,] mass = new int [5,5];
//Заполнение массива единицами
for(int i=0; i<5; i++)
{
for(int j=0; j<5; j++)
{
mass[i,j]=1;
}
}
//Вывод элементов массива ни консоль
for(int i=0; i<5; i++)
{
for(int j=0; j<5; j++)
{
Console.Write(" mass[{0},{1}]={2}", i,j, mass[i,j]);
}
Console.WriteLine();
}
Console.ReadLine();
}
}
Тип charиспользуется для представления символов Unicode, каждый из которых занимает 16 бит памяти.
Unicode — это международный стандартизированный набор символов, позволяющий представлять символы большинства естественных языков.
Символом типа charможет быть:
· Стандартная буква в кавычках нижнего или верхнего регистра, например 'а', 'Е' и т.д. Символ, скажем, 'Т', можно присвоить переменной следующим образом:
char myChar;
myChar = ‘Т’;
· Одиночная цифра, например '4'. Следует отметить, что для компилятора С# цифра в такой форме является не числом, а символом, который не может участвовать в арифметических действиях без соответствующего преобразования.
A=Convert.ToInt32(Console.Read.Line());
· Специальный символ наподобие '@', '$' или '&'.
· Символ в формате Unicode, представленный комбинацией: \u (символ обратной косой черты и n) с последующим шестнадцатеричным кодом символа. Например, шестнадцатеричный код Т равен 0x54,поэтому символ представим в форме '\ u0054'.Следовательно, кроме формы присваивания, приведенной выше, можно воспользоваться и такой:
char myChar;
myChar = ‘\u0054’;
· Управляющий символ, например '\t'. Последовательность символов, формирующая его (символ обратной косой черты и последующий буквенный символ), называется управляющей последовательностью или escape-последовательностью. В данном случае ‘\t’ означает горизонтальная табуляция.
Тип stringобъединяет отдельные символы в строки. Последние часто используются в программах для представления текстовой информации.
Ключевое слово stringявляется псевдонимом класса String,расположенного в пространстве имен System.NET Framework. Переменная, объявленная как string,фактически, содержит ссылку на объект System.String,в котором инкапсулирован текст.
В строковых литералах наподобие "This is a string" двойные кавычки указывают компилятору, что символы между ними следует трактовать как единый элемент. Строковый литерал является объектом класса string.
Присваивание строкового литерала переменной типа stringможно произвести и напрямую, записав:
someText = "This is a string";