Avatar billede flamsk Nybegynder
29. juli 2005 - 20:35 Der er 12 kommentarer og
1 løsning

Mærkelig fejl, går ind i følgende løkke if(1==0)

1:  if(true)
2:  {
3:     int tmp1 = 1;
4:    if(tmp1 == 0)
5:    {
6:        int a=0; //Denne linje bliver ikke kørt
7:        a++; //Denne linje bliver altid kørt !
8:    }
9:  }
10: else
11: {
12: }


Mit problem er at linjen 7 med a++; altid bliver kørt! Pånær hvis jeg fjerner else blokken. i følgende kode virker det!

1:  if(true)
2:  {
3:     int tmp1 = 1;
4:    if(tmp1 == 0)
5:    {
6:        int a=0; //Denne linje bliver ikke kørt
7:        a++; //Denne linje bliver ikke kørt
8:    }
9:  }

Hvis jeg tilføjer flere linjer med a++; i øverste kode så er det altid den sidste linje som bliver kørt, selv om den ikke skulle.

1:  if(true)
2:  {
3:     int tmp1 = 1;
4:    if(tmp1 == 0)
5:    {
6:        int a=0;//Denne linje bliver ikke kørt
7:        a++; //Denne linje bliver ikke kørt
7:        a++; //Denne linje bliver ikke kørt
7:        a++; //Denne linje bliver ikke kørt
7:        a++; //Denne linje bliver altid kørt !
8:    }
9:  }
10: else
11: {
12: }

Jeg har prøvet at lave rebuild flere gange, jeg har enda lavet et nyt projekt, og kodet det hele igen, med samme resultat.
Avatar billede arne_v Ekspert
29. juli 2005 - 20:38 #1
jeg nægter at tro på at compileren laver fejl af den art

men har jeg ret i at "bliver kørt/bliver ikke kørt" er noget du ser i debuggeren ?

tør man måske endda gætte på VS 2005 beta 2 ?
Avatar billede nielle Nybegynder
29. juli 2005 - 20:39 #2
Hvordan har du bevist overfor dog selv at linje 7 altid bliver udført? Den resultere jo ikke i nogen udskrift eller noget.
Avatar billede erikjacobsen Ekspert
29. juli 2005 - 20:39 #3
Nej, det kan ikke ske som anfører det. Har du et **helt** eksempel, hvor du kan vise at det sker?
Avatar billede flamsk Nybegynder
29. juli 2005 - 20:41 #4
VS 2002, står der i about
Microsoft development environment 2002
Det er ikke Vs 2005 beta

Og ja, det er i debuggeren
Avatar billede nielle Nybegynder
29. juli 2005 - 20:43 #5
Har du prøvet at sætte en watch på din a-variabel sådan at du kan se hvad den er blevet sat til? Måske er der bare tale om at debuggeren løber alle linjerne igennem til lige før at blokken afsluttes.
Avatar billede arne_v Ekspert
29. juli 2005 - 20:44 #6
har du prøvet at slette EXE
ud af VS
reboote Windows
ind i VS
rebuilde

?

For mig lyder det som VS er messed op !
Avatar billede flamsk Nybegynder
29. juli 2005 - 20:44 #7
public DmozNode getDmozNode(string dmozPath, int minSubDirectoryCount, bool cascade)
{
    DmozNode dmozNode = new DmozNode();
    String txt = getWebPage("http://www.dmoz.org/" + dmozPath);

    int hrStartIndex = txt.IndexOf("<table border=0>") + 16;
    int hrStopIndex = txt.IndexOf("</table>",hrStartIndex+1);
    txt = txt.Substring(hrStartIndex,hrStopIndex-hrStartIndex);

    int firstIndex=0;
    int secondIndex=0;
    bool done = false;
    while(!done)
    {
        firstIndex=txt.IndexOf("<b>", secondIndex);
        secondIndex=txt.IndexOf("</b>",firstIndex+3);
        if((firstIndex == -1) || (secondIndex == -1))
        {
            done=true;
        }
        else
        {       
            String directory = txt.Substring(firstIndex+3,secondIndex-firstIndex-3);


if(true)
{
int tmp1 = 1;
if(tmp1 == 0)
{
int a=0;
a++;
}
}
else
{
}
        }
    }

    return dmozNode;
}

Min oprindelige kode, indeholder selvfølgelig det samme tjek, men det var samme fejl, nu har jeg bare udpenslet det totalt, og det er i overstående kode den fejler!
Avatar billede flamsk Nybegynder
29. juli 2005 - 20:45 #8
arne_v, som svar på dit spørgsmål, så har jeg prøvet dette, rebootet flere gange samt enda lavet et helt nyt projekt!
Avatar billede flamsk Nybegynder
29. juli 2005 - 20:53 #9
Aha, a bliver ikke talt op, selv om linjen bliver kørt i debuggeren, så det er bare en debugger bug?
Avatar billede nielle Nybegynder
29. juli 2005 - 20:55 #10
Prøv at lave en Console.WriteLine(a) i din kodestump og kør så fra et DOS-prompt i stedet.

Fejler den også i den sammenhæng?
Avatar billede arne_v Ekspert
29. juli 2005 - 20:55 #11
kunne godt lyde sådan
Avatar billede flamsk Nybegynder
29. juli 2005 - 21:15 #12
tak for hjælpen, lukker
Avatar billede nielle Nybegynder
29. juli 2005 - 21:26 #13
Øhm, var det helt med vilje at du tog points selv?
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