Переменные и константы

Переменные и константы


Содержание



1. Для чего в программе используются константы и переменные?

Константы и переменные есть основными объектами, которые используются в программе. Константы и переменные – это именованные объекты, для которых выделяется память.

Значение константы обязательно устанавливается при ее объявлении в программе.

В отличие от переменной значение константы не может изменяться программно. Если константа уже объявлена, то при попытке присвоить константе какое-нибудь новое значение компилятор выдаст сообщение об ошибке.

Все переменные и константы должны быть объявлены до их применения. Это нужно, чтобы сообщить компилятору о типе данных, который сохраняется в переменной. Если известен тип переменной, то компилятор осуществляет соответствующую компиляцию любого оператора, в котором используется данная переменная.

 


2. Каким образом в C# объявляется константа? Примеры объявление констант.

Константа объявляется с помощью оператора следующей формы:

const тип имя_константы = значение;

где

constключевое слово, которое определяет что именно это есть константа; тип – тип данных, которые сохраняются в константе; имя_константы – имя константы; значение – значение константы, которое есть неизменяемым в программе.

Примеры описания констант.

const decimal m = 333897987.3949M; // константа типа decimal
const double pi = 3.1415; // константа типа double
const bool YES = true; // константа типа bool
const int Max = 255; // константа типа int
const char AnswerYes = 'Y'; // константа типа char
const string Str = "Constant String"; // константа типа string

 


3. Как в программе объявляется переменная? Примеры объявления переменных.

Переменные объявляются с помощью оператора следующей формы:

тип имя_переменной;

где тип – это тип данных, которые сохраняются в переменной; а имя_переменной – это ее имя.

Объявить переменную можно любого типа, который существует в программе. Тип переменной может быть также типом-значением.

Пример объявления переменной, которая имеет значимый тип.

double d, f; // 2 переменные типа double
int i, j; // 2 переменные типа int
bool answer; // переменная типа bool
char c; // переменная типа char
string s; // переменная типа string

d = 2.939;
f = -29309.39;
i = 50;
j = -300;
c = '=';
s = "This is a text";
answer = false;

 


4. Пример объявления переменной, которая есть структурой.

В языке C# структура относится к типу-значению а не к типу-классу.

Пример описания переменной, которая есть структурой типа MyPoint. Структура MyPoint определяет координаты точки на плоскости.

...

struct MyPoint
{
  public int x;
  public int y;
};

...

MyPoint mpt; // описание переменной mpt типа MyPoint

// присвоение значений внутренним полям переменной mpt
mpt.x = 20;
mpt.y = -30;

...

 


5. Пример объявления переменной которая есть перечислением.

В следующем примере объявляется переменная типа Months, которая есть перечислением.

enum Months { January, February, Murch, April, May, Jun,
              July, August, September, October, November, December };

...

Months mn;
Months mn2;

mn = Months.January;
mn2 = mn + 1; // mn2 = Months.February

...

 


6. Как осуществляется инициализация переменной? Примеры инициализации переменных.

Инициализация позволяет задать начальное значение переменной при ее объявлении.

Общая форма инициализации переменной имеет следующий вид:

тип имя_переменной = значение;

где тип – это тип данных, которые сохраняются в переменной; имя_переменной – это ее имя; значение – это конкретное значение, которое задается при создании переменной.

Примеры инициализации переменных:

int i = -463; // установить начальное значение -463 для переменной i
double d = 2093.9903; // установить значение 2093.9903 для переменной d
float f = -10039.39f;
char c = '%';
short sh = -30;
bool b = true;

Можно осуществлять инициализацию переменных выборочно. Например:

long l1 = 20003909, l2, l3 = 48938938984; // инициализируются переменные l1 и l3
string s, s1 = "Hello ", s2 = "world!", s3 = s1 + s2; // s3 = "Hello world!"

 


7. Как в C# реализуется динамическая инициализация переменных?

При динамической инициализации переменной в качестве инициализаторов используются не константы (литералы) а выражения. Эти выражения на момент объявления переменной должны быть действительными.

const double pi = 3.1415926535;
double r = 2; // радиус
double s = pi * r * r; // s = 12.566370614
double h = 3, v = s * h; // v = 37.699111842 - объем цилиндра радиуса r = 2 и высоты h = 3

 


8. Как в C# описываются неявно типизированные переменные?

Начиная с версии C# 3.0 компилятор имеет возможность самостоятельно определять тип локальной переменной. Этот тип определяется на основе значения, которым переменная инициализируется. Значению соответствует некоторый литерал, что описывается согласно синтаксису языка C#.

Такая переменная называется неявно типизированной.

Для объявления неявно типизированной переменной используется ключевое слово var. В этом случае инициализация переменной есть обязательной.

Общий вид описания неявно типизированной переменной:

var имя_переменной = значение;

где

var – ключевое слово; имя_переменной – это имя переменной; значение – это конкретное значение, которое задается при создании переменной.

Примеры описания неявно типизированных переменных:

var pi = 3.1415; // pi - типа double
var r = 3.39948f; // r - типа float
var h = 4393489348934.03290889m; // h - типа decimal
var i = 23; // i - типа int
var j = 38L; // j - типа long
var k = 30920039092UL; // k - типа ulong
var c = '&'; // c - типа char
var s = "C# 4.0"; // s - типа string

// var z = 3.8, y = 9.5; - ошибка: одновременно можно описывать только одну типизированную переменную

 


9. Сколько неявно типизированных переменных можно описывать одновременно?

Одновременно можно описывать только одну типизированную переменную.

При следующем описании будет ошибка, так как описаны две переменные:

// ошибка!
var z = 3.8, y = 9.5;

 


10. Пример описания неявно типизированной переменной, которая есть перечислением.

Пример описания неявно типизированной переменной, которая есть перечислением типа DaysOfWeek.

...

enum DaysOfWeek
{
    Sunday, Monday, Tuesday, Wednesday,
    Thursday, Friday, Saturday
};

...

var dw = DaysOfWeek.Saturday; // dw - типа DaysOfWeek

 


11. Что определяет область действия локальной переменной?

Область действия локальной переменной определяется блоком кода. Блок кода начинается с фигурной открытой скобки { и заканчивается фигурной закрытой скобкой ‘}.

...

{
    // область действия локальной переменной

    ...

}

...

Область действия определяет видимость имен констант и переменных без дополнительного уточнения. Также область действия определяет время существования локальной переменной.

В C# область действия определяется классом или методом.

Области действия могут быть вложенными. Если создается кодовый блок, тогда создается и вложенная область действия. В этом случае внешняя область действия охватывает внутреннюю область действия. Это означает, что локальные переменные и константы, которые объявлены во внешней области действия, будут доступны во внутренней области действия:

...

{
    // внешний блок
    int i;
    double d;

    ...
    {
        // внутренний блок

        int z;

        ...

        i = 25;   // есть доступ к переменным i и d
        d = 2329.344;
        z = -209; // z есть доступна только во внутреннем блоке

        ...

    }

    // Ошибка! Переменная z здесь недоступна
    // z = 123;

}

...

 


Связанные темы