Jump to content
php.lv forumi

switch vai if


waplet

Recommended Posts

kapec nevar? Visu nosaka pārbaudāmo mainīgo relatīvs daudzums :)

 

if (x==1 && y==0)
{
  page = new SuperPage();
}
else
if (x==1 && y==-1)
{
  page = new SimplePage();
}
else
{
  page = new EmptyPage();
}

page->draw();

Tev ir divi mainīgie un netiek apskatītas ne tuvu visas kombinācijas, kas iespējamas starp tiem. Tas ir kaut kas cits. Ja tev vajag izskaitļot izteiksmi un pēc tam sazarot plūsmu uz 2 vai 3 variantiem, tu vari izmanto "if" konstrukciju un pāris "boolean" tipa mainīgos vai izteiksmes. Savukārt, "switch" konstrukcija noderēs labāk, ja vajadzēs atkarībā no mainīgā vai izteiksmes vērtības sazarot programmas plūsmu uz 2 vai vairāk variantiem - tas gan izskatīsies labāk, gan uzlabos koda lasāmību un stilu. Katrs ir paredzēts savam un patiesībā tie, kas te zīmējas ar "mazu rindiņu skaitu", bieži vien nesaprot, ka pēc maz rindiņu skaita nav jātiecas - kods ir jāraksta loģisks, lakonisks un saprotams, tad arī rindiņu skaits būs gana mazs, kas ir svarīgi koda lasāmībai un arī tā izpildes veiktspējai (nevis "zīmēties" vai programmētāju spēju novērtēšanai).

Link to comment
Share on other sites

Paskaidrošu vēl, ka switch attiecas uz viena mainīgā vai izteiksmes vērtību, respektīvi, šo:

if (x == 1) {
   execute1();
} else if (x == 2) {
   execute2();
} else if (x == 3) {
   execute3();
} else {
   executeDefault();
}

var uzrakstīt sekojoši:

switch(x) {
   case 1:
       execute1();
       break;
   case 2:
       execute2();
       break;
   case 3:
       execute3();
       break;
   default:
       executeDefault();
}

Izskatās taču "advancētāk" vai ne? Turklāt var arī apstrādāt vairākus gadījumus un sazarot tos uz vienu rezultātu, rakstot tikai vienreiz. Lielākoties tas ir stila, koda skaidrības un lasamības labā!

Link to comment
Share on other sites

Turklāt var arī apstrādāt vairākus gadījumus un sazarot tos uz vienu rezultātu, rakstot tikai vienreiz. Lielākoties tas ir stila, koda skaidrības un lasamības labā!

Tās nu gan ir izvirtības, un tā darīt nevajag. Tas, tieši pretēji, ir slikts stils, padara kodu neskaidru un grūti nelasāmu.

Link to comment
Share on other sites

pelēkais vilks, briedi un citi meža zvēri, tas mans koda gabals, ko jūs abi citējāt, bija tikai un vienīgi par sintaksi, kā 16x rindiņu kodu uzrakstīt 6x rindiņās, aizvācot liekās figūriekavas {}. ja runā par semantiku, tad, protams, ka tur vajag pārbaudi, lai atļauj inkludot tikai php failus. btw, tā kā galā jau ir nofiksēts extensions ".php", tad kā var inkludot "../configs/passwordlist.txt"??? paši vsp varat to paskaidrot? ;)

 

Web Developer, savukārt tu gribi, lai viss būtu "pārāk pareizs", bet tas ne vnm ir praktiski. ir reizes, kad switch ir ērts daudzzarojumiem un reizes, kad ērtāks ir if

 

secinājums ir tāds, ka jākodē tā kā ir ērtāk pašam

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...