Olen tässä miettinyt onko selvempää käyttää if/elseä vaiko pelkästää if. Itse olen tuon pelkän if kannalla, mutta erään ammattikoodadin/opettajan mielestä aina pitää käyttää if/else tuommosissa tarkoituksissa. Joten kysyn mitä mieltä oletta ja kumpa teidän mielestä selkeämpi? Vai jotenkin muuten?
if (ehto)
{
tässä sit kaikkee kivaa
if (ehto2)
{
tässä on lisää kivaa
}
else
{
heitetään poikkeus
}
}
else
{
heitetään poikkeus
}
Vaiko
if (käänteinen ehto)
{
heitetään poikkeus
}
tässä on kaikkee kivaa
if (käänteinen ehto2)
{
heitetään poikkeus
}
tässä on lisää kivaa
Olen myös miettinyt jos aaltosulkujen sisällä on vain yksi rivi niin silloin aaltosulku alkaisi samalta riviltä kuin if, mitäs mieltä?
siis
if (käänteinen ehto) {
heitetään poikkeus
}
if (käänteinen ehto)
{
tehdään jotain
heitetään poikkeus
}
Antees jos nuo sisennykset sekoilee tässä foorumis.
Koodi on tarkoitus tehdä ulkopuolisille jotka arvostelee sen, yksi kriteeri on nimenomaan selkeys ja kuinka helppo toisen on sitä muuttaa.
if (ehto)
{
tässä sit kaikkee kivaa
if (ehto2)
{
tässä on lisää kivaa
}
else
{
heitetään poikkeus
}
}
else
{
heitetään poikkeus
}
Vaiko
if (käänteinen ehto)
{
heitetään poikkeus
}
tässä on kaikkee kivaa
if (käänteinen ehto2)
{
heitetään poikkeus
}
tässä on lisää kivaa
Olen myös miettinyt jos aaltosulkujen sisällä on vain yksi rivi niin silloin aaltosulku alkaisi samalta riviltä kuin if, mitäs mieltä?
siis
if (käänteinen ehto) {
heitetään poikkeus
}
if (käänteinen ehto)
{
tehdään jotain
heitetään poikkeus
}
Antees jos nuo sisennykset sekoilee tässä foorumis.
Koodi on tarkoitus tehdä ulkopuolisille jotka arvostelee sen, yksi kriteeri on nimenomaan selkeys ja kuinka helppo toisen on sitä muuttaa.
Vastaukset 11
Vanhimmat
selkeyden kannalta kannattaa aina tehdä syntaksivalinnat, ero suorituskyvyssä tällaisissa tilanteissa on olematonta. ja minusta mitä enemmän sisäisiä blokkeja on, sen vaikeammaksi koodia käy seurata, ja sama pätee tietty myös liian pitkiin ehtolauseisiin - nekin kannattaa pilkkoa osiin.
Esimerkeistä jälkimmäinen on selkeämpi ja nopeampi, kun tulee vähemmän ehtorakenteita.
Aaltosuluissa kannattaa ottaa kaikki C/C rakenteet syyniin ja valita yksi mitä lopulta käyttää. Se että muuttelee tapaa kesken koodin näyttää pahalta.
Vieläkös noista aaltosuluista jauhetaan... :)
Tee kummalla/millä tavalla haluat, mutta tee yhtenäisesti. Itse aloitan aina aaltosululla rivin lopusta, tulee minusta selkeämmän näköistä, mutta sehän on mieltymyskysymys. En nyt suoraan C:n vaatimuksia muista, mutta sellainen vinkki vielä, että hakasulut kannattanee laitaa vaikkei niitä aina tarvitsisikaan (tai vastaavasti if - end if -rakenne), koodin muuttaminen on helpompaa kun ei tarvitse miettiä mihin niitä hakasulkuja tarvittiinkaan lisää...
Ja entäs sitten, kuinka monta välilyöntiä on sisennys? :D
Ne on aaltosulut eikä hakasulut.
Tuon turhan viestin takia Internet sitten täyttyi. Kiitos vaan.
Virallinen/standardi tapa käyttää aaltosulkuja on näin:
if(ehto) {
..printf("blah\n");
..}
eli huomaa viimeinen sulku joka on samalla tasolla lohkon kanssa.
Straustrub muistaakseni käyttää tuota, muut muita...
Itse en sisennä lopettavaa aaltosulkua, toimiii minusta paremmin... Mutta edelleen, kunhan tyyli on yhtenäinen kaikkialla, ei ongelmia pitäisi olla. :)
"Itse aloitan aina aaltosululla rivin lopusta, tulee minusta selkeämmän näköistä"
Samaa mieltä mikäli aaltosulkujen väliin tulee vähän sisältöä, mutta jos useampi rivi koodia niin silloin omalla rivillä mielestäni selkeämpi. Tämän takia mietin juurikin että lyhkäsissä olisi samalla rivillä ja pitemmissä eri, toisaaltaan tämä olisi pomppimista kahden välillä, mutta kuitenkin johdonmukaista, tiedä sit.
"Itse aloitan aina aaltosululla rivin lopusta, tulee minusta selkeämmän näköistä"
Samaa mieltä mikäli aaltosulkujen väliin tulee vähän sisältöä, mutta jos useampi rivi koodia niin silloin omalla rivillä mielestäni selkeämpi. Tämän takia mietin juurikin että lyhkäsissä olisi samalla rivillä ja pitemmissä eri, toisaaltaan tämä olisi pomppimista kahden välillä, mutta kuitenkin johdonmukaista, tiedä sit.
Luultavasti mieltymys riippuu paljon siitä millä kielillä muuten koodaa / on koodannut. Itselläni java/c:n lisäksi läheisiä kieliä on mm. PL/SQL ja syntaksisesti Pascalia lähellä oleva PowerScript. Täysin erityyppisiä.
PL/SQL:ä koodatessa automaattisesti tulee jokainen blokki aloitettua omalta riviltään (BEGIN => END), kun taas PowerScriptillä jokainen blokki alkaa ilman erillistä blokkimäärettä (If - Else - End If). Veikkaisin että tästä kahtiajakautumisestä seuraa se hienous että olen aika mukautuvainen syntakseihin - kunhan ne ovat konsistentteja.
Muistelen opiskeluaikoina puhutun kaarisuluista pitkälti samoilla linjoilla kuin nyt. Ja neuvot olivat pitkälti samat. Kyllä kuka tahansa pätevä ihminen sitä koodia lukee, kunhan tyyli ei vaihtele jatkuvasti (ei sekään tietysti estä lukemista, ärsyttää vaan). Ehkä tuo 1-2 riviä samalla, muuten erillä on ihan ok, ehkä ei. Oma valinta. Tuskin proggis siihen kaatuu...
Ja vielä yksi tähän liittymätön yleinen ohje: jokaisen ohjelmointikielen tärkein komento on kommenttimerkki. :)
if(ehto){tässä sit kaikkee kivaa;if(ehto2){tässä on lisää kivaa;}else{heitetään poikkeus;}}else{heitetään poikkeus;}if(käänteinen ehto){heitetään poikkeus;}tässä on kaikkee kivaa;if(käänteinen ehto2){heitetään poikkeus;}
selkeää ja helppoa ;)