Avatar billede mach3 Nybegynder
04. januar 2005 - 16:35 Der er 5 kommentarer og
2 løsninger

IF løkker: Altid ELSE?

Hej,

Jeg har i c# nogle If løkker, som indeholder kode, der skal eksekveres hvis (og kun hvis) nogle betingelser er sande (fx om man har klikket på 'yes' eller 'no' button på datagrided.

Hvis man fx har klikket 'yes' skal dette skrives til databasen, og tilsvarende hvis har klikket 'no' skal det også skrives til databasen (der udføres også andre ting)

Skitse:

If(Button som er klikket == 'yes')
{
  ufør noget kode
}

Else if( Button som er klikket == 'no')
{
  udfør noget andet kode
}

Der er kun to muligheder, enten har man klikket 'yes' eller også har man klikket 'no', og den nævnte kode køres kun når der er blevet klikket på en button.

Så mit spørgsmål er, skal der være en Else til sidst eller kan man godt have If løkker uden at lave en tilsvarende Else?

Jeg ved, at betingelsen ALTDID er enten 'yes' eller 'no' så jeg ved ikke rigtigt hvad jeg skulle skrive af kode i en evt Else :o)

Mvh
Avatar billede arne_v Ekspert
04. januar 2005 - 16:37 #1
Du kan godt undlade en else blok.
Avatar billede arne_v Ekspert
04. januar 2005 - 16:37 #2
(iøvrigt kalder man normalt ikke if for en løkke)
Avatar billede jpvj Nybegynder
04. januar 2005 - 16:46 #3
Du benytter else kun hvis du kun ønsker "anden del" (dvs. koden efter else) bliver eksekveret såfremt første if sætning ikke udføres.

Eks: I nedenstående kode kan b kun være sand eller falsk. hvis b er sand udføres foo(). Hvis b er falsk (eneste anden mulighed) udføres bar():

b (boolean)

if (b) {
foo()
}
else
{
bar()
}

Ovenstående kan også gøres "funktionelt korrekt" men mindre optimalt:

if (b) {
foo()
}
else
if (not b) {  // her checkes unødvendigt, da b *kun* kan være falsk.
bar()
}


// nedenfor checkes altid 2 x if, hvilket er uoptimalt, da det logisk kun er muligt at udføre enten foo() eller bar(), da b kun kan antage en af værdierne sand eller falsk:

if (b) {
foo()
}

if (not b) {
  bar()
}

Så svaret på dit spm er: Ja man kan godt have if sætninger uden else, men else benyttes altid hvis den ene if sætning udelukker den næste.
Avatar billede mach3 Nybegynder
04. januar 2005 - 16:53 #4
Tak for den hurtige respons. Arne smider du også et svar :-)
Avatar billede arne_v Ekspert
04. januar 2005 - 16:59 #5
svar
Avatar billede mach3 Nybegynder
04. januar 2005 - 17:41 #6
Grunden til at jeg var i tvivl er at jeg har programmeret lidt i VHDL, hvor man ALTID skal have else på betinglserne, for at undgå at det går i sort.

Men ok, sådan er det ikke i c#.
Avatar billede fgsupermand Nybegynder
12. januar 2005 - 12:12 #7
uhh VHDL, nu får jeg mareridt igen :/
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

IT-Universitetet i København

CIO

Netcompany A/S

Linux Operations Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger en Unified Communications specialist i Hvidovre

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Faglig teamleder til styring og kvalitetssikring for Rekvirentteam i Forsvaret