Променљиве декларисане унутар једног метода су локалне променљиве и не могу се видети и користити у телу неког другог метода. Свака метода има свој скуп локалних променљивих. Променљиве декларисане унутар једне методе потпуно су независне од променљивих које су декларисане унутар других метода, чак иако имају иста имена.
Локалној променљивој се може доделити почетна вредност приликом декларације. Све док се не додели почетна вредност променљива је неиницијализована.
Опсег важења променљиве зависи од места увођења - декларације променљиве. Заграде које дефинишу тело метода истовремено означавају и опсег важења свих променљивих декларисаних у том методу. Локалне променљиве могу се декларисати било где унутар метода, све док су декларисане пре њиховог коришћења.
Пример 1. Написати програм који користећи функције рачуна максимум и минимум три дата броја.
Решење:
Правимо форму облика: | |||
|
|||
Слика 9.19. Изглед форме пре преименовања у примеру 1 |
Двокликом на дугме Nadji maksimum i minimum отвара нам се прозор у коме пишемо код за наш програм. Унутар класе Form1 пишемо код за функције које рачунају максимум и минимум, а унутар button1_Click пишемо код програма у коме ћемо позивати наше функције. | |||
Слика 9.20. Изглед форме након преименовања у примеру 1 |
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Definišemo funkciju maksimum
int maksimum(int x, int y, int z)
{
//Lokalna promenljiva funkcije maksimum
int m = x;
//Ispitujemo koja vrednost uzima maksimum
if (m < y)
m = y;
if (m < z)
m = z;
//Vraćamo odgovarajuću vrednost
return m;
}
//Definišemo funkciju minimum
int minimum(int x, int y, int z)
{
//Lokalna promenljiva funkcije maksimum
int m = x;
//Ispitujemo koja vrednost uzima maksimum
if (m > y)
m = y;
if (m > z)
m = z;
//Vraćamo odgovarajuću vrednost
return m;
}
private void button1_Click(object sender, EventArgs e)
{
//Deklaracija promenljivih
int x, y, z;
int max, min;
//Proveravamo da li su textBox-ovi prazni. Ako nisu, računamo maksimum i minimum
if (textBox1.Text != "" && textBox2.Text != "" && textBox3.Text != "")
{
//Učitavamo vrednosti promenljivih
x = int.Parse(textBox1.Text);
y = int.Parse(textBox2.Text);
z = int.Parse(textBox3.Text);
//Poziv funkcije maksimum
max = maksimum(x, y, z);
//Poziv funkcije minimum
min = minimum(x, y, z);
//Ispis rezultata
label4.Text = "Maksimum tri uneta broja je " + max + ", a minimum je " + min;
}
else
//Ako je neki od textBox-ova prazan ispisujemo poruku
label4.Text = "Uneti brojeve!";
}
}
Сада покренимо програм. Уколико изоставимо попуњавање једног, два или свих поља, резултат програма је приказан на слици 9.21, а уколико бисмо унели све три вредности резултат рада програма биће као на слици 9.22.Слика 9.21. Резултат рада програма када нису попуњена сва поља | Слика 9.22. Резултат рада програма за исправан унос |
За разлику од локалних променљивих, глобалне променљиве се декларишу у оквиру класе Form1 и видљиве су свуда. Оне се могу користити унутар свих метода које се налазе у оквиру класе, као и унутар главног програма. Међутим, уколико неку глобалну променљиву локално дефинишемо и доделимо јој другу вредност, биће видљива само та локална променљива. Размотримо следећи пример.
Пример 2. Написати програм који у једној лабели исписује унапред задату вредност глобалне променљиве, а у другој лабели исписује учитану вредност локалне променљиве.
Решење:
Овде ћемо имати две променљиве истог имена - једну глобалну и једну локалну. Глобалну променљиву ћемо иницијализовати и њена вредност ће бити једнака 1. Локалној променљивој доделићемо вредност из textBox1.
Правимо форму облика: | |||
|
|||
Слика 9.23. Изглед форме пре преименовања у примеру 2 |
Двокликом на дугме Ispisi отвара нам се прозор у коме пишемо код за наш програм. | |||
Слика 9.24. Изглед форме након преименовања у примеру 2 |
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Inicijalizacija globalne promenljive x
int x = 1;
//Funkcija koju vezujemo za pritisak na dugme button1, glavni program
private void button1_Click(object sender, EventArgs e)
{
//U prvoj labeli ispisujemo vrednost globalne promenljive
label1.Text = "Globalna promenljiva x pre davanja vrednosti lokalnoj promenljivoj: ";
//U drugoj labeli ispisujemo vrednost lokalne promenljive
label2.Text = "Vrednost lokalne promenljive x koja je globalno definisana: ";
//Vrednost globalne promenljive
label1.Text = label1.Text + x;
//Učitavanje vrednosti x iz textBox1
x = int.Parse(textBox1.Text);
//Ispisivanje vrednosti x nakon dodeljivanja vrednosti lokalnoj promenljivoj
label2.Text = label2.Text + x;
}
}
Сада покренимо програм. Резултат рада програма је следећи: