Delfins Posted February 13, 2010 Report Share Posted February 13, 2010 pareizi jau būtu, es vēl papildus esmu izmantojis arī klases instances veidošanu, ja nu grib pa smuko, nevis pliku include (iekš include var būt tie paši jebkādi izsaukumi) Link to comment Share on other sites More sharing options...
Web Developer Posted February 13, 2010 Report Share Posted February 13, 2010 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 More sharing options...
Web Developer Posted February 13, 2010 Report Share Posted February 13, 2010 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 More sharing options...
waplet Posted February 13, 2010 Author Report Share Posted February 13, 2010 Web developer.. tad kā lai switchu vēl klāt y variabli? Link to comment Share on other sites More sharing options...
briedis Posted February 13, 2010 Report Share Posted February 13, 2010 Web developer.. tad kā lai switchu vēl klāt y variabli? Neviens neliedz atsevišķi switchā izmantot if konstrukciju... Link to comment Share on other sites More sharing options...
Delfins Posted February 13, 2010 Report Share Posted February 13, 2010 pielabojie, ja kljudos, bet ta ir izvertiba. switch (true){ case (x==1 && y==2): nreak; ] Ari switch ar ieliktajiem (daudziem!) IF ir nelasāms... Link to comment Share on other sites More sharing options...
bubu Posted February 13, 2010 Report Share Posted February 13, 2010 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 More sharing options...
waplet Posted February 13, 2010 Author Report Share Posted February 13, 2010 Tātad, kādi būti oficiāli "pareizie" secinājumi? Link to comment Share on other sites More sharing options...
bubu Posted February 13, 2010 Report Share Posted February 13, 2010 Es palieku pie sava teiktā #15 postā. Link to comment Share on other sites More sharing options...
2easy Posted February 13, 2010 Report Share Posted February 13, 2010 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 More sharing options...
waplet Posted February 13, 2010 Author Report Share Posted February 13, 2010 Ok.. btw man patika bubu variants... Klapējam šo būdu ciet. Link to comment Share on other sites More sharing options...
Recommended Posts