You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/sw/2-js-basics/3-making-decisions
softchris bde9da6dad
🌐 Update translations via Co-op Translator
1 month ago
..
README.md 🌐 Update translations via Co-op Translator 1 month ago
assignment.md 🌐 Update translations via Co-op Translator 1 month ago

README.md

Misingi ya JavaScript: Kufanya Maamuzi

Misingi ya JavaScript - Kufanya maamuzi

Sketchnote na Tomomi Imura

Je, umewahi kujiuliza jinsi programu zinavyofanya maamuzi ya busara? Kama jinsi mfumo wa urambazaji unavyochagua njia ya haraka zaidi, au jinsi thermostat inavyoamua wakati wa kuwasha joto? Hii ni dhana ya msingi ya kufanya maamuzi katika programu.

Kama vile Injini ya Uchambuzi ya Charles Babbage ilivyoundwa kufuata mfululizo tofauti wa operesheni kulingana na hali, programu za kisasa za JavaScript zinahitaji kufanya chaguo kulingana na hali tofauti. Uwezo huu wa kuchagua na kufanya maamuzi ndio hubadilisha msimbo wa tuli kuwa programu zinazojibu na zenye akili.

Katika somo hili, utajifunza jinsi ya kutekeleza mantiki ya masharti katika programu zako. Tutachunguza kauli za masharti, waendeshaji wa kulinganisha, na maelezo ya kimantiki yanayoruhusu msimbo wako kutathmini hali na kujibu ipasavyo.

Jaribio la Kabla ya Somo

Jaribio la kabla ya somo

Uwezo wa kufanya maamuzi na kudhibiti mtiririko wa programu ni kipengele cha msingi cha programu. Sehemu hii inashughulikia jinsi ya kudhibiti njia ya utekelezaji wa programu zako za JavaScript kwa kutumia thamani za Boolean na mantiki ya masharti.

Kufanya Maamuzi

🎥 Bonyeza picha hapo juu kwa video kuhusu kufanya maamuzi.

Unaweza kuchukua somo hili kwenye Microsoft Learn!

Muhtasari Mfupi Kuhusu Booleans

Kabla ya kuchunguza kufanya maamuzi, hebu tukumbuke thamani za Boolean kutoka somo letu la awali. Zikitajwa kwa jina la mwanahisabati George Boole, thamani hizi zinawakilisha hali mbili aidha true au false. Hakuna utata, hakuna hali ya kati.

Thamani hizi za binary zinaunda msingi wa mantiki yote ya kompyuta. Kila uamuzi ambao programu yako hufanya hatimaye hupunguzwa kuwa tathmini ya Boolean.

Kuunda vigezo vya Boolean ni rahisi:

let myTrueBool = true;
let myFalseBool = false;

Hii huunda vigezo viwili vyenye thamani za Boolean wazi.

Booleans zimetajwa kwa jina la mwanahisabati, mwanafalsafa na mtaalamu wa mantiki George Boole (18151864).

Waendeshaji wa Kulinganisha na Booleans

Kwa vitendo, mara chache utaweka thamani za Boolean kwa mkono. Badala yake, utazalisha thamani hizi kwa kutathmini hali: "Je, namba hii ni kubwa kuliko ile?" au "Je, thamani hizi ni sawa?"

Waendeshaji wa kulinganisha huwezesha tathmini hizi. Wanalinganisha thamani na kurudisha matokeo ya Boolean kulingana na uhusiano kati ya operands.

Alama Maelezo Mfano
< Kidogo kuliko: Inalinganisha thamani mbili na kurudisha aina ya data ya Boolean true ikiwa thamani upande wa kushoto ni ndogo kuliko ya kulia 5 < 6 // true
<= Kidogo au sawa na: Inalinganisha thamani mbili na kurudisha aina ya data ya Boolean true ikiwa thamani upande wa kushoto ni ndogo au sawa na ya kulia 5 <= 6 // true
> Kubwa kuliko: Inalinganisha thamani mbili na kurudisha aina ya data ya Boolean true ikiwa thamani upande wa kushoto ni kubwa kuliko ya kulia 5 > 6 // false
>= Kubwa au sawa na: Inalinganisha thamani mbili na kurudisha aina ya data ya Boolean true ikiwa thamani upande wa kushoto ni kubwa au sawa na ya kulia 5 >= 6 // false
=== Usawa mkali: Inalinganisha thamani mbili na kurudisha aina ya data ya Boolean true ikiwa thamani upande wa kulia na kushoto ni sawa NA ni aina sawa ya data. 5 === 6 // false
!== Kutokuwepo usawa: Inalinganisha thamani mbili na kurudisha thamani ya Boolean kinyume na kile ambacho operator wa usawa mkali ungeweza kurudisha 5 !== 6 // true

Angalia ujuzi wako kwa kuandika kulinganisha kadhaa kwenye console ya kivinjari chako. Je, data yoyote iliyorejeshwa inakushangaza?

Kauli ya If

Kauli ya if ni kama kuuliza swali katika msimbo wako. "Ikiwa hali hii ni kweli, basi fanya jambo hili." Labda ni zana muhimu zaidi utakayotumia kufanya maamuzi katika JavaScript.

Hivi ndivyo inavyofanya kazi:

if (condition) {
  // Condition is true. Code in this block will run.
}

Hali huwekwa ndani ya mabano, na ikiwa ni true, JavaScript inaendesha msimbo ndani ya mabano ya curly. Ikiwa ni false, JavaScript inaruka kizuizi hicho chote.

Mara nyingi utatumia waendeshaji wa kulinganisha kuunda hali hizi. Hebu tuone mfano wa vitendo:

let currentMoney = 1000;
let laptopPrice = 800;

if (currentMoney >= laptopPrice) {
  // Condition is true. Code in this block will run.
  console.log("Getting a new laptop!");
}

Kwa kuwa 1000 >= 800 inatathminiwa kuwa true, msimbo ndani ya kizuizi unatekelezwa, na kuonyesha "Kupata laptop mpya!" kwenye console.

Kauli ya If..Else

Lakini vipi ikiwa unataka programu yako ifanye kitu tofauti wakati hali ni false? Hapo ndipo else inapoingia ni kama kuwa na mpango wa dharura.

Kauli ya else inakupa njia ya kusema "ikiwa hali hii si kweli, fanya jambo hili badala yake."

let currentMoney = 500;
let laptopPrice = 800;

if (currentMoney >= laptopPrice) {
  // Condition is true. Code in this block will run.
  console.log("Getting a new laptop!");
} else {
  // Condition is false. Code in this block will run.
  console.log("Can't afford a new laptop, yet!");
}

Sasa kwa kuwa 500 >= 800 ni false, JavaScript inaruka kizuizi cha kwanza na inaendesha kizuizi cha else badala yake. Utaona "Siwezi kumudu laptop mpya, bado!" kwenye console.

Jaribu kuelewa msimbo huu na msimbo unaofuata kwa kuutekeleza kwenye console ya kivinjari. Badilisha thamani za vigezo vya currentMoney na laptopPrice ili kubadilisha console.log() inayorejeshwa.

Kauli ya Switch

Wakati mwingine unahitaji kulinganisha thamani moja dhidi ya chaguo nyingi. Ingawa unaweza kufunga kauli kadhaa za if..else, mbinu hii inakuwa ngumu. Kauli ya switch inatoa muundo safi zaidi wa kushughulikia thamani nyingi tofauti.

Dhana hii inafanana na mifumo ya kubadili mitambo iliyotumika katika ubadilishaji wa simu za mapema thamani moja ya pembejeo huamua njia maalum ambayo utekelezaji unafuata.

switch (expression) {
  case x:
    // code block
    break;
  case y:
    // code block
    break;
  default:
    // code block
}

Hivi ndivyo ilivyo:

  • JavaScript inatathmini usemi mara moja
  • Inatafuta kila case ili kupata mechi
  • Inapopata mechi, inaendesha kizuizi cha msimbo hicho
  • break inaambia JavaScript kusimama na kutoka kwenye switch
  • Ikiwa hakuna kesi inayolingana, inaendesha kizuizi cha default (ikiwa unacho)
// Program using switch statement for day of week
let dayNumber = 2;
let dayName;

switch (dayNumber) {
  case 1:
    dayName = "Monday";
    break;
  case 2:
    dayName = "Tuesday";
    break;
  case 3:
    dayName = "Wednesday";
    break;
  default:
    dayName = "Unknown day";
    break;
}
console.log(`Today is ${dayName}`);

Katika mfano huu, JavaScript inaona kwamba dayNumber ni 2, inapata case 2 inayolingana, inaweka dayName kuwa "Jumanne", na kisha inatoka kwenye switch. Matokeo? "Leo ni Jumanne" linaonyeshwa kwenye console.

Jaribu kuelewa msimbo huu na msimbo unaofuata kwa kuutekeleza kwenye console ya kivinjari. Badilisha thamani za kigezo a ili kubadilisha console.log() inayorejeshwa.

Waendeshaji wa Mantiki na Booleans

Maamuzi magumu mara nyingi yanahitaji kutathmini hali nyingi kwa wakati mmoja. Kama vile aljebra ya Boolean inavyoruhusu wanahisabati kuunganisha maelezo ya kimantiki, programu hutoa waendeshaji wa mantiki kuunganisha hali nyingi za Boolean.

Waendeshaji hawa huwezesha mantiki ya masharti ya hali ya juu kwa kuunganisha tathmini rahisi za kweli/siyo kweli.

Alama Maelezo Mfano
&& Mantiki AND: Inalinganisha maelezo mawili ya Boolean. Inarudisha kweli tu ikiwa pande zote mbili ni kweli (5 > 3) && (5 < 10) // Pande zote mbili ni kweli. Inarudisha kweli
|| Mantiki OR: Inalinganisha maelezo mawili ya Boolean. Inarudisha kweli ikiwa angalau upande mmoja ni kweli (5 > 10) || (5 < 10) // Upande mmoja ni false, mwingine ni kweli. Inarudisha kweli
! Mantiki NOT: Inarudisha thamani kinyume ya maelezo ya Boolean !(5 > 10) // 5 si kubwa kuliko 10, kwa hivyo "!" inafanya kuwa kweli

Waendeshaji hawa hukuruhusu kuunganisha hali kwa njia za manufaa:

  • AND (&&) inamaanisha hali zote mbili lazima ziwe kweli
  • OR (||) inamaanisha angalau hali moja lazima iwe kweli
  • NOT (!) hubadilisha kweli kuwa si kweli (na kinyume chake)

Hali na Maamuzi kwa Waendeshaji wa Mantiki

Hebu tuone waendeshaji hawa wa mantiki wakifanya kazi na mfano halisi zaidi:

let currentMoney = 600;
let laptopPrice = 800;
let laptopDiscountPrice = laptopPrice - (laptopPrice * 0.2); // Laptop price at 20 percent off

if (currentMoney >= laptopPrice || currentMoney >= laptopDiscountPrice) {
  // Condition is true. Code in this block will run.
  console.log("Getting a new laptop!");
} else {
  // Condition is false. Code in this block will run.
  console.log("Can't afford a new laptop, yet!");
}

Katika mfano huu: tunahesabu bei ya punguzo la 20% (640), kisha tunatathmini ikiwa fedha zetu zilizopo zinatosha kwa bei kamili AU bei ya punguzo. Kwa kuwa 600 inakidhi kizingiti cha bei ya punguzo cha 640, hali inatathminiwa kuwa kweli.

Operator ya Kukanusha

Wakati mwingine ni rahisi kufikiria kuhusu wakati kitu si kweli. Kama badala ya kuuliza "Je, mtumiaji ameingia?", unaweza kutaka kuuliza "Je, mtumiaji hajajaingia?" Alama ya mshangao (!) hubadilisha mantiki kwa ajili yako.

if (!condition) {
  // runs if condition is false
} else {
  // runs if condition is true
}

Operator ya ! ni kama kusema "kinyume cha..." ikiwa kitu ni true, ! inafanya kuwa false, na kinyume chake.

Maelezo ya Ternary

Kwa ugawaji rahisi wa masharti, JavaScript hutoa operator ya ternary. Sintaksia hii fupi hukuruhusu kuandika maelezo ya masharti kwa mstari mmoja, muhimu unapohitaji kugawa moja ya thamani mbili kulingana na hali.

let variable = condition ? returnThisIfTrue : returnThisIfFalse;

Inasomeka kama swali: "Je, hali hii ni kweli? Ikiwa ndiyo, tumia thamani hii. Ikiwa hapana, tumia thamani ile."

Hapa chini kuna mfano wa dhahiri zaidi:

let firstNumber = 20;
let secondNumber = 10;
let biggestNumber = firstNumber > secondNumber ? firstNumber : secondNumber;

Chukua dakika kusoma msimbo huu mara kadhaa. Je, unaelewa jinsi waendeshaji hawa wanavyofanya kazi?

Hii ndiyo mstari unasema: "Je, firstNumber ni kubwa kuliko secondNumber? Ikiwa ndiyo, weka firstNumber ndani ya biggestNumber. Ikiwa hapana, weka secondNumber ndani ya biggestNumber."

Operator ya ternary ni njia fupi tu ya kuandika kauli ya jadi ya if..else:

let biggestNumber;
if (firstNumber > secondNumber) {
  biggestNumber = firstNumber;
} else {
  biggestNumber = secondNumber;
}

Mbinu zote mbili hutoa matokeo sawa. Operator ya ternary inatoa ufupi, wakati muundo wa jadi wa if-else unaweza kuwa rahisi kusomeka kwa hali ngumu.


🚀 Changamoto

Unda programu ambayo imeandikwa kwanza kwa waendeshaji wa mantiki, kisha iandike upya kwa kutumia maelezo ya ternary. Je, sintaksia unayoipendelea ni ipi?


Changamoto ya Wakala wa GitHub Copilot 🚀

Tumia hali ya Wakala kukamilisha changamoto ifuatayo:

Maelezo: Unda kikokotoo cha alama za daraja kinachojumuisha dhana nyingi za kufanya maamuzi kutoka somo hili, ikiwa ni pamoja na kauli za if-else, kauli za switch, waendeshaji wa mantiki, na maelezo ya ternary.

Kichocheo: Andika programu ya JavaScript inayochukua alama ya nambari ya mwanafunzi (0-100) na kuamua daraja lake la herufi kwa kutumia vigezo vifuatavyo:

  • A: 90-100
  • B: 80-89
  • C: 70-79
  • D: 60-69
  • F: Chini ya 60

Mahitaji:

  1. Tumia kauli ya if-else kuamua daraja la herufi
  2. Tumia waendeshaji wa mantiki kuangalia ikiwa mwanafunzi amefaulu (alama >= 60) NA ana heshima (alama >= 90)
  3. Tumia kauli ya switch kutoa maoni maalum kwa kila daraja la herufi
  4. Tumia operator ya ternary kuamua ikiwa mwanafunzi anastahili kozi inayofuata (alama >= 70)
  5. Jumuisha uthibitishaji wa pembejeo ili kuhakikisha alama iko kati ya 0 na 100

Jaribu programu yako kwa alama mbalimbali ikiwa ni pamoja na kesi za ukingo kama 59, 60, 89, 90, na pembejeo zisizo sahihi.

Jifunze zaidi kuhusu hali ya wakala hapa.

Jaribio la Baada ya Somo

Jaribio la baada ya somo

Mapitio & Kujisomea

Soma zaidi kuhusu waendeshaji wengi waliopo kwa mtumiaji kwenye MDN.

Pitisha muhtasari mzuri wa waendeshaji wa Josh Comeau operator lookup!

Kazi ya Nyumbani

Waendeshaji


Kanusho:
Hati hii imetafsiriwa kwa kutumia huduma ya kutafsiri ya AI Co-op Translator. Ingawa tunajitahidi kwa usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya asili inapaswa kuzingatiwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu ya binadamu inapendekezwa. Hatutawajibika kwa kutoelewana au tafsiri zisizo sahihi zinazotokana na matumizi ya tafsiri hii.