SWITCH

         Else ба elseif зэргийг ойлгосны дараа control structure-н бас нэг     хувилбар Switch-н тухай vзье. Яг vнэндээ бол хэрвээ та HTML формын INPUT, VALUE зэргийг мэддэг бол switch бол яг адилхан ( маш тєстэй ) байдаг. Гэхдээ else, elseif-тэй тєстэй талууд ч байна. Би яагаад INPUT, VALUE-тэй адил гэсэн гэхээр Conditional Structures-н condition нь HTML формын NAME=??? гэсэн утгыг авах ба VALUE=??? нь цорын ганц statement буюу vйлдэл гvйцэтгэнэ. Value бvрд цорын ганц statement        гvйцэтгэгдэнэ, энэ нь ганцхан value оршино гэсэн vг биш юм. Хэрвээ           нєхцєлд байхгvй value орж ирвэл заавал гvйцэтгэх default statement      гэж байдаг. Энэ нь else -н дараа байх statement-ээс ялгаагvй. Яагаад else ба elseif-тэй тєстэй гэхээр адил бvтэцтэй байх ба бас condition, statement зэргийг агуулдаг.

switch ($variable) {
case "value1":
statement(1);
break;
case "value2":
statement(2);
break;
default:
statement(3);
break;
}


Энэ юу вэ гэхээр хэрвээ value 1 vнэн бол statement 1 биелэгдэнэ  буюу          гvйцэтгэгдэнэ. Хэрвээ value 1 худлаа бол statement 1 биелэгдэхгvй, харин value 2-г шалгана. Хэрвээ value 2 vнэн байвал statement 2    биелэгдэнэ, хэрвээ худлаа бол шууд дараачийн нєхцєл болох default vнэн гэсэн vг. Энэ нєхцєлд statement 3 заавал биелэгдэнэ. else ба elseif -ээс ялгарах юм нь value-г шууд condition шиг байдлаар авж vзнэ. Харин     condition -г єєрийг нь ёрєнхий condition мэтээр авж vздэг. Condition дотор олон жижигхэн condition оруулсан гэж ойлгож болно.

$Variable хаанаас гараад ирэв гэхээр энэ чин ёрєнхий condition.

Дээрх switch condition-г elseif structures-ээр бичвэл

if ($variable == "value1") {
statement(1);
} elseif ($variable == "value2") {
statement(2);
} else {
statement(3);
 }


Энд бас нэг жижигхэн юм тайлбарлья.

      = ( ганц тэнцvvгийн тэмдэг ) нь == ( хоёр тэнцvvгийн тэмдэг) -ээс жижиг ялгаатай. Дээр би цухуйлгаад хаясан одоо яг нарийн тайлбарлахад тохиромжтой vе нь.

= -- Харгалзуулах
== -- Жинхэнэ тэнцvvлэх

гэсэн утгатай.

    Харгалзуулах гэдэг маань тухайн хувьсагчийн утгийг зааж байгаа, тvр      хугацаанд. Харин тэнцvvлэх гэдэг нь тухайн хувьсагчийн утга бол яг жинхнээсээ тэнцvv гэсэн vг.

Бас нэг юм бол break; vйлдлийн дараа switch condition дуусдаг.


Монголын тvvхэнд vлдсэн хамгийн адгийн урвагч хэн бэ?
      

Дээрх код хэрхэн ажиллаж байгааг сорс кодоос нь харъя.

<?
switch ($urvagch) {
case "Zanabazar":
print "<center>Зєв!</center>";
break;
case "Kublai":
print "<center>Буруу!</center>";
break;
default:
print "<center>Тvрvvчийн хуудаснаас ямар нэг хариу сонгоно уу!</center>";
break;
}
?>

      Зарим хvмvvс switch нь else ба elseif-тэй тєстэй тул бараг адилхан гэж ташаа дvгнэж байж болох юм. Тэгвэл тийм биш. Switch дээр олон value урьдчилж єгчихєєд дараа нь шалгаад явчихдаг бол else ба elseif дээр бол хоёроос дээш value-г шалгадаг код бичихэд тєвєгтэй ба тэгж заваарах    шаардлагагvй юм. Switch нь их хэмжээний нєхцєлтэй асуудал шийдвэрлэхэд тохиромжтой байхад else, elseif нь нэг эсвэл хоёрхон бололцоотой нєхцєл бvхий програмд илvv тохиромжтой байдаг гэхvv дээ.

Бас нэг мэдэхэд илvvдэхгvй юм бол elseif ба else if хоёрт ялгаа байдаггvй.