Stránka 1 z 1

Rada začátečníkovi

Napsal: 22 led 2021, 17:49
od Huri
Ahoj, poradí někdo jak správně zapsat do kódu následující větu:

Pokud se proměná1 nerovná číslu 1, nebo číslu 4 , nebo číslu 6.

Vím, jen:

if (promena1 != 1){ \\ ale nevím jak přidat ta další čísla...
}

Díky :-)

Re: Rada začátečníkovi

Napsal: 22 led 2021, 18:07
od gilhad
Chces rict: pokud se promenna1 nerovna 1 a pritom se promenna1 nerovna 4 a pritom se promenna1 nerovna 6

Kód: Vybrat vše

if ( (promena1 != 1) && (promena1 != 4) && (promena1 != 6) ) {
  // tak se nerovna ani jednomu z tech cisel
}

(v nekterych pripadech muze mit i smysl to vnorit, ale vetsinou je ten prvni pristup lepsi )

Kód: Vybrat vše

if (promena1 != 1) { //tak to neni 1
   if (promena1 != 4) { // tak to neni 1 a pritom to neni ani 4
      if (promena1 != 6)  { // a navic dokonce ani 6
         // tak se nerovna ani jednomu z tech cisel
       };
    };
}

Re: Rada začátečníkovi

Napsal: 22 led 2021, 18:27
od Huri
To je vono :-)

if ( (promena1 != 1) && (promena1 != 4) && (promena1 != 6) ) {
// tak se nerovna ani jednomu z tech cisel
}

Tušil jsem že to bude nějak tak, ale nemohl jsem na to přijít. Hned to jdu zkusit.

Ta druhá varianta mě napadla, ale ta se mi tam nehodí.

Díky

Re: Rada začátečníkovi

Napsal: 22 led 2021, 18:43
od gilhad

Re: Rada začátečníkovi

Napsal: 23 led 2021, 19:48
od KamilV
Jen kosmetika, ale pokud jsou všechny operátory stejné, tak tam ty vnitřní závorky ani být nemusí.
Chyba to není, jen za sebe mohu říct, že se mi to hůř čte, protože s napětím očekávám, že se tam v řadě objeví nějaký OR a ono nic :lol:

Re: Rada začátečníkovi

Napsal: 24 led 2021, 16:32
od gilhad
Nemusi, ale zase priorita a grupovani operatoru nejsou pro zacatecniky prilis intuitivni, zavorky jsou celkem jednoznacne a pokud clovek program meni a kopiruje kusy sem a tam, tam dodatecna kontrola neni na skodu. Samozrejme to jde napsat ruzne, napriklad

Kód: Vybrat vše

if(1&promenna1?~1&promenna1:1<<2&promenna1?~6&promenna1:1) {
  // at ziji operatory
}
Je to sice bez vnitrnich zavorek a kompatni a vysledek je stejny (pro int promenna1), ale zacatecnikovi byt to fakt nedoporucoval :lol:

Re: Rada začátečníkovi

Napsal: 24 led 2021, 17:54
od ondraN
Já se řídím zásadou, že závorek není nikdy dost. Ta priorita operátorů dokáže vyrobit naprosto nepochopitelné chyby, které se blbě hledají (obvzláště když jde o pointery). Závorky jsou jasné a silně zvyšují čitelnost programu a tím i snižují čas na ladění :mrgreen: