If lauseista kysymyksiä

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.
11971
Äänestä

Muut lukivat myös

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.

Äänestä

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.

Äänestä

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

Äänestä
  • Ne on aaltosulut eikä hakasulut.

    Äänestä

  • Vittuilija kirjoitti:

    Ne on aaltosulut eikä hakasulut.

    Tuon turhan viestin takia Internet sitten täyttyi. Kiitos vaan.

    Äänestä

  • Virallinen/standardi tapa käyttää aaltosulkuja on näin:

    if(ehto) {
    ..printf("blah\n");
    ..}

    eli huomaa viimeinen sulku joka on samalla tasolla lohkon kanssa.

    Äänestä

  • aaltosuluille kirjoitti:

    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. :)

    Äänestä

  • "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.

    Äänestä

  • "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.

    Äänestä

  • Nyner kirjoitti:

    "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. :)

    Äänestä

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 ;)

Äänestä

Kommentoi aloitusta


Nyner kirjoitti:

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.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu