15.3. return – оператори
return оператори бирор бир операцияни бажаришга мўлжалланган функцияни бажарилишини тўхтатиб, бошқарувни ушбу функция чақирилган жойга қайтариш учун хизмат қилади. Ушбу оперторнинг синтаксиси қуйидагича:
return [ ифода ];
бу ерда ифода функциянинг қиймати сифатида қайтарилувчи ва типи - ушбу функция типига мос бўлган ифодадир.
Агар функция қиймат қайтариши лозим бўлса, қайтарилувчи қиймат return оператори ёрдамида функцияга ўзлаштирилади ва бошқарув функцияга мурожаат қилинган жойга узатилади. Масалан:
public static int Sum1(int a, int b)
{
return a+b;
}
Ушбу функция а ва b қийматларининг йиғиндисини қайтаради.
Агар функция қиймат қайтариши лозим бўлмаса return операторидан сўнг ифода ёзилмайди. Бунда функция танасидаги ҳисоблаш жараёни тўхтатилиб, бошқарув шунчаки функция танасидан унга мурожаат қилинган жойга узатилади. Қиймат қайтармайдиган функциялардан фойдаланилганда return операторини қўлламаслик ҳам мумкин.
Энди функциялар билан ишлашга мисоллар кўриб ўтсак. Мисол учун массивдаги бир номни янги номга алмаштириш функциясини ёзамиз. Ушбу функция бирор қиймат қайтариши учун зарурат бўлмаганлиги сабабли уни процедура сифатида қўллаймиз.
using System;
namespace ConsoleApplication1
{
class Program
{
public static void ReplaceName(string[] names,
string name,
string newName)
{
for (int i=0; i < names.Length; i++)
{
if (names[i] == name)
names[i] = newName;
}
}
static void Main(string[] args)
{
string[] names = { "Sergey", "Maxim", "Andrey", "Oleg", "Andrey", "Ivan", "Sergey" };
//1 Функцияга мурожаат. Массивдаги барча "Andrey" номлари "Nikolay" га ўзгаради.
ReplaceName(names, "Andrey", "Nikolay");
// Функцияга мурожаат. Массивдаги барча "Ivan" номлари "Vladimir" га ўзгаради.
ReplaceName(names, "Ivan", "Vladimir");
Console.Readkey();
}
}
}
Листинг 15.3.1. Қиймат қайтармайдиган функцияни яратиш ва ундан фойдаланиш.
Функцияни биринчи марта чақирилгандан сўнг массив қуйидагича кўринишда бўлади:
"Sergey", "Maxim", " Nikolay ", "Oleg", " Nikolay ", "Ivan", "Sergey".
Функцияни иккинчи марта чақирганимиздан сўнг, массив қуйидаги кўринишга келади:
"Sergey", "Maxim", " Nikolay ", "Oleg", " Nikolay ", " Vladimir ", "Sergey".
Массивдаги энг катта элемент қийматини қайтарувчи функцияни қуйидаги мисолда кўриб ўтилган:
using System;
namespace ConsoleApplication1
{
class Program
{ //функция
public static int GetMax(int[] array)
{
int max = array[0];
for (int i = 1; i < array.Length; i++)
{
if (array[i] > max)
max = array[i];
}
return max;
}
static void Main(string[] args)
{
int[] numbers = { 3, 32, 16, 27, 55, 43, 2, 34 };
int max;
max = GetMax(numbers); //функцияга мурожаат
Console.WriteLine(“Массивдаги энг катта элемент ”+max);
Console.ReadKey();
}
}
}
Do'stlaringiz bilan baham: |