JS Managing the FLow Script

Branch IF - IF нөхцөл

JavaScript If Statements

Нөхцөлөөс хамаарч шийдвар гаргах

Үндсэн If Statement

if (condition) {
    // code to run if condition is true
    execute this statement when true
    execute this statement when true
    execute this statement when true
}
let age = 18;
if (age >= 18) {
    console.log("You can vote!");
}
Output: You can vote!

Үндсэн If Statement


let temperature = readThermometer();
const tolerable = 25;

if ( temperature > tolerable ) {
    turn_on_air_conditioning( )
    get_a_cool_drink( )
    stay_in_shade( )
}
                        
let flag = true;
if( !flag ) {
    console.log( 'Power is OFF' )
}
if( flag ) {
    console.log( 'Power is ON' )
}

Үндсэн If Statement


if( 7 < 2 ) {
    console.log( 'Failure' )
}

if( 7 > 2 ) {
    console.log( 'Success' )
}
                        

Branch Alternatives - Шийдвэрийн өөр хувилбар

If-Else Statement

if (condition) {
    // code for true
    execute this statement when true
} else {
    // code for false
    execute this statement when false
}
let score = 75;
if (score >= 60) {
    console.log("Pass");
} else {
    console.log("Fail");
}
Output: Pass

If-Else If-Else Chain

if ( condition ) {
        execute these statements when true;

} else if ( condition ) {
    execute these statements when true;

} else if ( condition ){
    execute these statements when true;

} else {

    execute these statements when false;
}

If-Else If-Else Chain

let grade = 85;

if (grade >= 90) {
    console.log("A");
} else if (grade >= 80) {
    console.log("B");
} else if (grade >= 70) {
    console.log("C");
} else {
    console.log("F");
}
Output: B

If-Else If-Else Chain

let flag = false;
if( !flag ) {
    console.log( 'Power is OFF' );
} else {
    console.log( 'Power is ON' );
}
Output: Power is OFF

If-Else If-Else Chain


const num = 10;
if( num === 5 ) {
    console.log( 'Number is Five' );
} else if( num === 10 ) {
    console.log( 'Number is Ten' );
} else {
    console.log( 'Number is Neither Five nor Ten' );
}

Output: Number is Ten

Branch Alternatives - Шийдвэрийн өөр хувилбар

Nested If Statements

let age = 25;
let hasLicense = true;

if (age >= 18) {
    if (hasLicense) {
        console.log("You can drive");
    } else {
        console.log("Get a license first");
    }
} else {
    console.log("Too young to drive");
}
Output: You can drive

Best Practices

  • Нөхцлийг аль болох хялбар бас амархан байхаар сонгох
  • Хувьсагчийн нэрийг аль болох утгатай учиртай өгөх
  • Switch Statement-ийг олон төрлийн нөхцөлд ашиглах
  • Харьцуулахдаа маш анхааралтай байгаарай.
  • Олон шалгалт буюу хэтэрхий гүнзгий BRANCH хийхээс зайлсхийх

Голчлон алддаг алдаа

// == -ийн оронд = ашиглах
if (age = 18) {} // Буруу!
if (age === 18) {} // Зөв!

// curly braces буюу угалзан хаалтыг багасгах.
if (age >= 18)
    console.log("Adult"); // Risky!

// Сайн:
if (age >= 18) {
    console.log("Adult");
}

SWITCH Alternatives - Шийдвэрийн өөр хувилбар

Switch үндсэн бүтэц

switch (илэрхийлэл) {
    case утга1:
        // код
        break;
    case утга2:
        // код
        break;
    default:
        // өөр тохиолдолд
}

Энгийн жишээ

let datum = 3;

switch (datum) {
    case 1:
        console.log("Даваа");
        break;
    case 2:
        console.log("Мягмар");
        break;
    case 3:
        console.log("Лхагва");
        break;
    default:
        console.log("Буруу өдөр");
}
Гаралт: Лхагва

Олон утгатай жишээ

let month = "12";

switch (month) {
    case "12":
    case "1":
    case "2":
        console.log("Өвөл");
        break;
    case "3":
    case "4":
    case "5":
        console.log("Хавар");
        break;
    default:
        console.log("Бусад улирал");
}
Гаралт: Өвөл

Олон утгатай жишээ

let day;

switch (5 - 2) {
    case 1 : day = 'Monday' ; break;
    case 2 : day = 'Tuesday' ; break;
    case 3 : day = 'Wednesday' ; break;
    case 4 : day = 'Thursday' ; break;
    case 5 : day = 'Friday' ; break;
    default: day = 'Weekend';
}
console.log(day)
Гаралт: Wednesday

Switch ба If-ийн ялгаа

  • Switch нь тэнцүү байдлыг шалгана (===)
  • Олон нөхцөл шалгахад Switch илүү цэгцтэй
  • Break мартахаас болгоомжлох
  • Default нь else-тэй адил үүрэгтэй

Түгээмэл алдаанууд

// Break мартсан
switch (үнэлгээ) {
    case "A":
        console.log("Маш сайн");
        // break дутуу
    case "B":
        console.log("Сайн");
        break;
}

// Зөв бичиглэл:
switch (үнэлгээ) {
    case "A":
        console.log("Маш сайн");
        break;
    case "B":
        console.log("Сайн");
        break;
}

Сайн дадал

  • Break хэрэглэхээ бүү март
  • Default тохиргоог оруулах
  • Ойлгомжтой утга хэрэглэх
  • Цэвэр код бичих

Сорилт - Дадлага

If болон Switch хамтад нь

Наадмын оноо тооцох програм

Дараах шаардлагын дагуу код бичнэ үү:

  • Морь уралдааны байр (1-5)
  • Бөхийн өнгө (улаан, цэнхэр)
  • Бөхийн давсан тоо (1-5)
function calculateNaadam(horsePlaces, bukhColor, howManyWins) {
    let point = 0;

    // Морины байр шалгах
    switch(horsePlaces) {
        case 1:
            point += 50;
            break;
        case 2:
            point += 40;
            break;
        case 3:
            point += 30;
            break;
        case 4:
        case 5:
            point += 20;
            break;
        default:
            console.log("Буруу байр");
            return;
    }
    // Бөхийн өнгө шалгах
    if (bukhColor === "red") {
        if (howManyWins >= 4) {
            points *= 2;
        } else if (howManyWins >= 2) {
            points += 20;
        }
    } else if (howManyWins === "цэнхэр") {
        if (howManyWins >= 3) {
            points += 30;
        } else {
            points += 10;
        }
    }
    return points;
}

Жишээ гүйлгээ:

console.log(calculateNaadam(1, "red", 4));
// Гаралт: 100 (50 оноо * 2)

console.log(calculateNaadam(2, "blue", 3));
// Гаралт: 70 (40 оноо + 30)
Гаралт 1: 100 Гаралт 2: 70

Таны ээлж!

Дараах тохиолдлуудыг бодоорой:

  1. Морь: 3-р байр, Улаан бөх: 5 давсан
  2. Морь: 4-р байр, Цэнхэр бөх: 2 давсан

Таны ээлж!

Дараах тохиолдлуудыг бодоорой:

  1. Морь: 3-р байр, Улаан бөх: 5 давсан
  2. Морь: 4-р байр, Цэнхэр бөх: 2 давсан

// Хариу 1: 60 (30 оноо * 2)
// Хариу 2: 30 (20 оноо + 10)

JS FOR Loop

JavaScript FOR Давталт

Давталт ба Удирдлагын урсгалыг ойлгох

FOR давталтын үндсэн бүтэц

for (эхлэл; нөхцөл; алхам) {
    // гүйцэтгэх кодын блок
}
  • эхлэл: Давталт эхлэхээс өмнө нэг удаа ажиллана (Initializer)
  • нөхцөл: Давталт бүрийн өмнө шалгагдана (Condition)
  • алхам: Давталт бүрийн дараа гүйцэтгэгдэнэ(Modifier)

Энгийн жишээ

// 1-ээс 5 хүртэл тоолох
for (let i = 1; i <= 5; i++) {
    console.log(`Тоолол: ${i}`);
}
Тоолол: 1
Тоолол: 2
Тоолол: 3
Тоолол: 4
Тоолол: 5

Массив дээр давтах

const pets = ['Адуу', 'Үхэр', 'Хонь', 'Ямаа', 'Тэмээ'];

for (let i = 0; i < pets.length; i++) {
    console.log(`Мал ${i + 1}: ${pets[i]}`);
}
Мал 1: Адуу
Мал 2: Үхэр
Мал 3: Хонь
Мал 4: Ямаа
Мал 5: Тэмээ

Давхар давталт

// Хүснэгт үүсгэх
for (let i = 1; i <= 3; i++) {
    for (let j = 1; j <= 3; j++) {
        console.log(`${i} × ${j} = ${i * j}`);
    }
    console.log('--------');
}
1 × 1 = 1
1 × 2 = 2
1 × 3 = 3
--------
2 × 1 = 2
2 × 2 = 4
2 × 3 = 6
--------
3 × 1 = 3
3 × 2 = 6
3 × 3 = 9
--------

Давталт удирдах үйлдлүүд

// Break жишээ
for (let i = 1; i <= 5; i++) {
    if (i === 3) {
        break; // Давталтыг зогсоох
    }
    console.log(i);
}

// Continue жишээ
for (let i = 1; i <= 5; i++) {
    if (i === 3){
        continue; // Дараагийн давталтруу шилжих
    }
    console.log(i);
}
Break гаралт: Continue гаралт:
1 1
2 2
4
5

Түгээмэл хэв маягууд

// Буурах дараалал
for (let i = 5; i > 0; i--) {
    console.log(i);
}
// 2-оор өсөх
for (let i = 0; i <= 6; i += 2) {
    console.log(i);
}

Сайн дадлууд

  • Тоолуур хувьсагчийг 'let'-ээр зарлах
  • Ойлгомжтой нэр өгөх
  • Давталт доторх тоолуурыг өөрчлөхгүй байх
  • Хязгааргүй давталтаас зайлсхийх
  • Массивтай ажиллахдаа array функцуудыг ашиглах

Түгээмэл алдаанууд

// Хязгааргүй давталт
for (let i = 1; i >= 0; i++) {
    // Энэ хэзээ ч дуусахгүй!
}

// Нэгээр хэтрүүлэх алдаа
const arr = [1, 2, 3];
for (let i = 0; i <= arr.length; i++) {
    // Сүүлийн давталт undefined гарна!
}

Дасгал

/* Дасгал: Дараах шаардлагатай давталт бич:
1. 1-ээс 20 хүртэл тоолно
2. 3-т хуваагддаг тоонд "Гурав" гэж хэвлэ
3. 5-т хуваагддаг тоонд "Тав" гэж хэвлэ
4. 3 ба 5-т хуваагддаг тоонд "ГуравТав" гэж хэвлэ
5. Дээрх нөхцөлд таарахгүй бол тоог хэвлэ */

Дасгал

/* Дасгал: Дараах шаардлагатай давталт бич:
1. 1-ээс 20 хүртэл тоолно
2. 3-т хуваагддаг тоонд "Гурав" гэж хэвлэ
3. 5-т хуваагддаг тоонд "Тав" гэж хэвлэ
4. 3 ба 5-т хуваагддаг тоонд "ГуравТав" гэж хэвлэ
5. Дээрх нөхцөлд таарахгүй бол тоог хэвлэ */

Хариулт:

for (let i = 1; i <= 20; i++) {
    if (i % 3 === 0 && i % 5 === 0) {
        console.log('ГуравТав');
    } else if (i % 3 === 0) {
        console.log('Гурав');
    } else if (i % 5 === 0) {
        console.log('Тав');
    } else {
        console.log(i);
    }
}

JS - WHILE Loop

JavaScript While Давталт

Нөхцөлт давталтыг ойлгох нь

While давталтын бүтэц

while (нөхцөл) {
    // гүйцэтгэх кодын блок
}
  • Нөхцөл үнэн байх үед давталт үргэлжилнэ
  • Нөхцөл худал болмогц давталт зогсоно
  • Нөхцөл давталт бүрийн өмнө шалгагдана

Энгийн жишээ

// Морь уналгын тоолуур
let round = 1;
while (round <= 3) {
    console.log(`${round}-р тойрог`);
    round++;
}
1-р тойрог
2-р тойрог
3-р тойрог

Do While давталт

// Шагайн тоглоомын жишээ
let found = 0;
do {
    found = Math.floor(Math.random() * 6) + 1;
    console.log(`Шагай: ${found}`);
} while (found !== 6); // 6 гартал давтах
Шагай: 3
Шагай: 1
Шагай: 6

Do While нь нөхцөл шалгахаас өмнө нэг удаа заавал ажиллана

While ба Do While-ийн ялгаа

While

let number = 10;
while (number < 10) {
    console.log(number);
    number++;
}
// Хэвлэхгүй

Do While

let number = 10;
do {
    console.log(number);
    number++;
} while (number < 10);
// 10 хэвлэнэ

Массивтай ажиллах

const herdsmen = ['Болд', 'Дорж', 'Нараа', 'Сараа'];
let index = 0;

while (index < herdsmen.length) {
    console.log(`${index + 1}. ${herdsmen[index]}`);
    index++;
}
1. Болд
2. Дорж
3. Нараа
4. Сараа

Break ба Continue

// Наадмын бөхийн барилдаан
let ringer = 1;
while (ringer <= 5) {
    if (ringer === 3) {
        console.log('Гурав дахь бөх өвдсөн тул дараагийнх');
        ringer++;
        continue;
    }
    if (ringer === 4) {
        console.log('Барилдаан цаг агаарын байдлаас болж зогслоо');
        break;
    }
    console.log(`${ringer}-р бөх барилдаж байна`);
    ringer++;
}
1-р бөх барилдаж байна
2-р бөх барилдаж байна
Гурав дахь бөх өвдсөн тул дараагийнх
Барилдаан цаг агаарын байдлаас болж зогслоо

Түгээмэл алдаанууд

// Хязгааргүй давталт
while (true) {
    console.log("Энэ хэзээ ч зогсохгүй!");
}

// Нөхцөл өөрчлөхөө мартах
let number = 1;
while (number < 5) {
    console.log(number);
    // number++; мартсан
}

Дасгал

/* Дасгал: Дараах шаардлагатай код бич:
1. Тоглогч 1-6 хүртэлх санамсаргүй тоо орж ирнэ
2. Тоглогч 3 оролдлого хийж болно
3. Зөв тоо таасан бол "Та яллаа!" гэж хэвлэ
4. Оролдлого дууссан бол "Та хожигдлоо" гэж хэвлэ
5. Таах тоо нь 4 байг */

Хариулт:

const correctNumber = 4;
let tries = 3;

while (tries > 0) {
    let guess = Math.floor(Math.random() * 6) + 1;
    console.log(`Таны оролдлого: ${guess}`);

    if (guess === correctNumber) {
        console.log("Та яллаа!");
        break;
    }

    tries--;
    if (tries === 0) {
        console.log("Та хожигдлоо");
    }
}

JavaScript Алдааг Барих

JavaScript Алдааг Барих

Try-Catch ашиглан алдааг удирдах нь

Үндсэн бүтэц

try {
    // алдаа гарч болзошгүй код
} catch (error) {
    // алдааг барьж авах
} finally {
    // заавал ажиллах код
}

Энгийн жишээ

// Малын тоо бодох жишээ
try {
    let petNumber = Number("арван");  // энэ алдаа гаргана
    console.log(`Нийт мал: ${petNumber}`);
} catch (error) {
    console.log(`Алдаа гарлаа: Тоо биш утга оруулсан байна`);
}
Алдаа гарлаа: Тоо биш утга оруулсан байна

Алдааны төрлүүд

// ReferenceError
try {
    console.log(тодорхойлоогүйХувьсагч);
} catch (error) {
    console.log(`${error.name}: Хувьсагч тодорхойлогдоогүй байна`);
}

// TypeError
try {
    null.toString();
} catch (error) {
    console.log(`${error.name}: Функц дуудах боломжгүй байна`);
}

// SyntaxError
try {
    eval('console.log("Сайн байна)'); // хаалт дутуу
} catch (алдаа) {
    console.log(`${алдаа.name}: Кодын бичиглэл буруу байна`);
}

Finally блок

function petRegistration() {
    let file = null;
    try {
        file = "pet.txt"; // файл нээх
        throw new Error("Файл унших боломжгүй");
    } catch (error) {
        console.log("Алдаа гарлаа:", error.message);
    } finally {
        console.log("Файл хаагдлаа:", file);
        file = null;
    }
}

petRegistration();
Алдаа гарлаа: Файл унших боломжгүй
Файл хаагдлаа: pet.txt

Сайн дадлууд

  • Тодорхой алдаануудыг л барих
  • Алдааны мэдээллийг бүртгэх
  • Өөрийн алдааг зөв ангилах
  • Finally блокийг зөв ашиглах
  • Алдааны мессежийг ойлгомжтой бичих

Дасгал 1 - Нас шалгах

Дараах шаардлагатай код бич:

  • Насыг шалгаад зөвхөн 0-120 хүртэл байх
  • Тоо биш утга оруулбал алдаа гаргах
  • Сөрөг тоо болон 120-оос их бол өөр алдаа гаргах

Хариулт:

function calculateAge(age) {
    try {
        const number = Number(age);

        if (isNaN(number)) {
            throw new Error("Нас тоо байх ёстой");
        }

        if (number < 0 || number > 120) {
            throw new RangeError("Нас 0-120 хооронд байх ёстой");
        }

        return `Таны нас: ${number}`;
    } catch (error) {
        return `Алдаа: ${error.message}`;
    }
}

Summary - Дүгнэлт

Нэгтгэн Дүгнэлт

If Statement
  • if түлхүүр үг нь үндсэн нөхцөл шалгалтыг true эсвэл false утгаар хийнэ
  • else түлхүүр үг нь нөхцөл биелээгүй үеийн үйлдлийг тодорхойлно
Switch Statement
  • switch олон нөхцөлийг шалгахад хэрэглэнэ
  • Хэд хэдэн case утгыг шалгаж болно
  • Заавал break ашиглах
  • default нь аль ч нөхцөл биелээгүй үед ажиллана
For Loop
  • for давталт гурван хэсэгтэй:
    • Эхлүүлэгч (initializer)
    • Нөхцөл (condition)
    • Өөрчлөгч (modifier)
  • Өөрчлөгч нь нөхцлийг false болгох боломжтой байх ёстой
While Loops
  • while давталт нөхцлийг эхэнд шалгана
  • do while давталт нөхцлийг төгсгөлд шалгана

Удирдлагын Түлхүүр Үгс

Break & Continue
  • break - давталтаас гарах
  • continue - дараагийн давталт руу шилжих

Алдаа Боловсруулах

Try-Catch Structure
  • try catch бүтэц нь алдааг боловсруулна
  • Алдаа объект дараах шинж чанартай:
    • name - алдааны нэр
    • message - алдааны мэдээлэл
  • throw түлхүүр үг шинэ алдаа үүсгэнэ
  • finally блок нь алдаа гарсан эсэхээс үл хамааран ажиллана

Чухал Санамжууд

  • Нөхцөл шалгалтад тохирох бүтцийг сонгох (if, switch)
  • Давталтын төрлийг зөв сонгох (for, while, do while)
  • Break, continue зөв ашиглах
  • Алдаа гарч болзошгүй кодыг try catch дотор бичих
  • Алдааны мэдээллийг тодорхой бичих
  • Finally блокийг нөөц цэвэрлэхэд ашиглах