Autor Beitrag
Mangafreak1995
Hält's aus hier
Beiträge: 7

Win XP
Delphi 7 Enterprise, Visual Studio 2008 Express, Visual Studio 2008 Professional
BeitragVerfasst: Di 18.05.10 22:22 
Hey Com,

ich komm aus der VBasic-Welt in die CSharp-Welt.
Die Grundlagen sind mir alle klar (aus Openbook Galileo Visual C# 2008).

Nur jetzt nehm ich eine einfach For-Schleife und es passiert nichts.
Wenn ich jetzt mit F10 und F11 mich zur Stelle vor arbeite seh ich, dass die Schleife bemerkt wird, der Debugger aber bis ans Ende der Schleife springt.
Was ist jetzt mein Fehler ?
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
       public static EnumerationType[,] IntField2EnumerationType(int[,] vals, int w, int h)
        {
            EnumerationType[,] p = new EnumerationType[w,h];

            for (int x = 0; x == w - 1; x++)
            {
                for (int y = 0; y == h - 1; y++)
                {
                    p[x, y] = Int2Type(vals[x, y]);
                }
            }

            return p;
        }

die Function Int2Type gibt abhängig vom Integer einen bestimmten Wert zurück.
w und h sind im Debugger als 8 angezeigt worden.

Ich hoffe es sind ausreichend Infos da.

MfG M4n94fr34k


Moderiert von user profile iconKha: Topic aus WinForms verschoben am Di 18.05.2010 um 23:17
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: Di 18.05.10 23:02 
Die Bedingung der For Schleife ist eine "Durchführbedingung" sprich sie muss Gültig sein damit sie durchlaufen wird
Mangafreak1995 Threadstarter
Hält's aus hier
Beiträge: 7

Win XP
Delphi 7 Enterprise, Visual Studio 2008 Express, Visual Studio 2008 Professional
BeitragVerfasst: Di 18.05.10 23:55 
Entschuldige ich kann dir aber nicht ganz folgen.
Wo ist da was nicht "gültig" ?

MfG M4n94fr34k
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 19.05.10 07:53 
Hallo und :welcome:,

er meint damit, dass x == w -1 true sein muss für die äußere Schleife und x == w - 1 für die Innere und wahrscheinlich ist sie das nicht am Anfang.

Wenn du im Debugger bist kannst du mit der Maus auf das == Zeichen gehen und der Ausdruck wird ausgewertet. Du kannst auch über variablen gehen und siehst die Werte.

Gruß
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 19.05.10 08:05 
Oder anders ausgedrückt:
ersetze x == w -1 durch x <= w -1
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 19.05.10 12:16 
Oder gleich durch x < w, das dürfte die gängigste Variante sein.

_________________
>λ=
Mangafreak1995 Threadstarter
Hält's aus hier
Beiträge: 7

Win XP
Delphi 7 Enterprise, Visual Studio 2008 Express, Visual Studio 2008 Professional
BeitragVerfasst: Mi 19.05.10 13:40 
Ah, jetzt weiß ich wo mein Denkfehler lag. ;)
Ich dachte der 2. "Eintrag" ist das Ziel und nicht die Bedingung, herrschen muss während des Vorganges.

@danielf: danke :) (PS: Wie du vielleicht im 1. Post von mir lesen konntest ist mir klar, dass ich während des Debuggens die Variablen einsehen kann.)

@Kha: das wäre mir glaub im Laufe auch aufgefallen, dass diese Methode einfacher ist, aber danke auch an dich, dass du mir den Hinweis sofort gegeben hast :D

MfG M4n94fr34k

euch noch ein schönen Nachmittag :)