Einsteiger-Verständnisfrage: Völlig kryptischer Code
-
C-Laie schrieb:
Ja, danke! While-do löschte ich soeben, das stammt ja aus C#.
Wie bitte? Das gibts auch in C# nicht.
-
Es ist wie verhext: Kaum fragte ich, funktioniert es. Also
while (k<len && a[k]==nil) ++k;funktioniert nunmehr ebenso wie
while (k<len && a[k]==nil) k++;Da saß mir immer noch C# im Nacken.
Unklar ist mir aber immer noch, warum
do k++ while(k<len && a[k]==nil);vom Compiler abgelehnt wird. Das ist jetzt mehr rhetorisch gefragt, weil ich die Antwort darauf nicht benötige, aber vielleicht ist das ja auch noch ganz einfach - mit wenigen Wörtern - klärbar.
Nochmals danke!
C-Laie
-
HighLigerBiMBam schrieb:
C-Laie schrieb:
Ja, danke! While-do löschte ich soeben, das stammt ja aus C#.
Wie bitte? Das gibts auch in C# nicht.
Dann bitte ich um Nachsicht: Dann war mir das noch von Pascal in Erinnerung.
Es ist eben keinesfalls von Vorteil, sich mit mehreren Programmiersprachen zu beschäftigen, weil man immer mehr durcheinanderbringt. Ist zumindest bei mir so - ein Beobachtung, die ich im übrigen auch bei natürlichen Sprachen machte.
-
Weil bei k++ das Semikolon fehlt.
-
C-Laie schrieb:
do k++ while(k<len && a[k]==nil);do k++; while(k<len && a[k]==nil);do k++; while(k<len && a[k]==nil);
-
Ja, der Apostroph fehlte, nunmehr ist es mir klar, danke!
Wie gesagt, je mehr Programmiersprachen, desto schlimmer wird es. Leider war bei der Compilermeldung „Statement missing ;“ das Apostroph nur allzuleicht zu übersehen.
Danke, danke!
-
Das Semikolon wird aber traurig, wenn Du es Apostroph nennst.
-
volkard schrieb:
Das Semikolon wird aber traurig, wenn Du es Apostroph nennst.

-
Strich Punkt!?

-
Ihr werdet es vielleicht nicht glauben, aber das fiel mir heute nacht (!) von allein ein, daß ich das arme Semikolon evtl. auch noch falsch titulierte. Gestern war aber auch wirklich sehr wenig mit mir los - Asche auf mein Haupt!
-
Wenn das Apostroph runterfällt und deswegen ein Suchflieger startet, um es zu suchen, könnte sich kurzzeitig die Konstellation ergeben, dass es wie ein Semikolon aussieht:
t0: ´ t1: · t2: , t3: , · t4: , · t5: , · t6: , · t7: , · t8: ,· t9: ;
-
C-Laie schrieb:
Es ist wie verhext: Kaum fragte ich, funktioniert es. Also
while (k<len && a[k]==nil) ++k;funktioniert nunmehr
Der Code ist aber nicht äquivalent. Beim Original, hier nochmal zur Erinnerung
while (++k<len && a[k]==nil);wird k bereits vor dem ersten Schleifendurchlauf einmal inkrementiert. Du machst also jetzt einen Durchlauf mehr. Und wenn das erste k (k=0 nehme ich an, aber das hast du nicht mitgeteilt) die Bedingung bereits wahr werden lässt, dann ist das auch das Ergebnis, was im Original nicht der Fall wäre. Äquivalent wäre
k++; while (k<len && a[k]==nil) k++;