# Goto

Siz tuynuklar haqida eshitganmisiz? Dasturlashda ham xuddi shunday tuynuklar bor. Bu tuynukardan qanday foydalanamiz deysizmi!?

Avval tuynukni qayerga olib borishi uchun uning chiqish joyini Aniqlab olishimiz kerak.

![Aniqlab olamiz va kerakli joydan turib shu yerga hech qanday shartsiz o’tish mumkin . Ya’ni avvalgi belgilagan tuynuk uchida chiqib kelinadi.](/files/-MM6hb-FmqbRPv8QCeqh)

![Demak tushuncha oldingizmi Dasturda shuni bir ko’rmaymizni nima dedingiz?](/files/-MM6hjL2_nRIbuZEQZlP)

## Demak boshladik. 1-misol

```csharp
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            bool active = false;
            string say = "Salom";
            key:
            if (active)
            {
                Console.WriteLine(say);
            }
            if(active == false)
            {
                active = true;
                goto key;
            }
            Console.ReadKey();
        }
    }
}
```

Bu dasturda biz avval “key” nomli kalitni belgilab oldik.va kalit so’zdan keyin ‘:’ qo’yamiz. Dasturda shu qismga o’tib olishimiz uchun.&#x20;

Bu qismda dasturda active false qiymat olgan va 1- if shart bajarilmaydi.

Keyin 2-if shartini active qanoatlantirgani uchun  active  true qiymat oladi goto key buyrugi orqali key: deb boshlangan qismga o’tib ketadi. Va Consolega “Salom” deb chiqaradi. Va 2-if shartiga o’tadi bu qismda esa active true qiymatga ega bo’lgan edi. Va dastur bu safar 2-if shartini qanoatlantirmadi va dastur tugadi.

## 2-misol

```csharp
using System;
namespace GotoShartOperatori
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = 0;
            if (n == 0) {
                while (true)
                {
                    if (n == 10)
                    {
                        goto key;
                    }
                    n += 2;
                }
            }
            Console.WriteLine("Asosiy");
            while (true)
            {
                Console.WriteLine("Salom");
            }
            key:
            Console.WriteLine("Qalaysiz!");
            Console.ReadKey();
        }
    }
}
```

\
Bu dasturda n==0 shart tekshiriladi va while sikliga tushib qoladi va n=10 bo’lganida bu sikladan chiqib ketadi va xatto undan keyin turgan

```csharp
while (true)
    {
        Console.WriteLine("Salom");
    }
```

Cheksiz Siklga tushib qolgan key: bilan boshlanuvchi qismga o’tib ketadi!

Demak tushunganday bo’ldingizmi . Ya’ni siz dasturda ixtiyoriy Qismga o’tish uchun avval bir kalit so’z belgilab olasiz. Va dasturda ixtiyoriy qismda “goto”

So’zidan keyin siz o’ziz belgilagan kalit so’zni yozib qoyasiz. Dastur sizni kodlaringizni o’qiyotganda. “Goto” kalit so’zni o’qiganda siz yozgan kalit qismga o’tib ketadi. Demak tushunarli “Avval qayerligini aniqlab olmiz va shu joyga kalit so’z yozib ketamiz, va dasturni ixtiyoriy joyidan shu yerga goto deb so’zidan keyin kalitni yozib o’tib olasiz”!!!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.dot-net.uz/c-.net/basic/starter/untitled-5.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
