Sollte ich jemals in einer switch-Anweisung weitermachen?

Bemerkte ich, können Sie verwenden in der Tat die continue Schlüsselwort in einer switch-Anweisung, aber auf PHP es nicht, was mich erwartet.

Wenn es nicht mit PHP, wer weiß wie viele andere Sprachen zu schlägt? Wenn ich wechseln zwischen Sprachen eine Menge, kann dies ein problem sein, wenn der code verhält sich nicht wie ich erwarten, dass es sich zu Verhalten hat.

Sollte ich einfach vermeiden, mit continue in einer switch-Anweisung dann?

PHP (5.2.17) schlägt fehl:

for($p = 0; $p < 8; $p++){
    switch($p){
        case 5:
            print"($p)";
            continue;
            print"*"; //just for testing...
        break;
        case 6:
            print"($p)";
            continue;
            print"*";
        break;
    }
    print"$p\r\n";
}
/*
Output:
0
1
2
3
4
(5)5
(6)6
7
*/

C++ scheint zu funktionieren wie erwartet (springt zum Ende der for-Schleife):

for(int p = 0; p < 8; p++){
    switch(p){
        case 5:
            cout << "(" << p << ")";
            continue;
            cout << "*"; //just for testing...
        break;
        case 6:
            cout << "(" << p << ")";
            continue;
            cout << "*";
        break;
    }
    cout << p << "\r\n";
}
/*
Output:
0
1
2
3
4
(5)(6)7
*/
Kommentar zu dem Problem
Ende der Schleife? Ich würde nicht unbedingt nennen-switch eine loop-Anweisung, es ist eine erweiterte if-else Anweisung in meinem Blick - und Sie rufen weiter in der if-else? Kommentarautor: Zathrus Writer
Ich glaube nicht, dass es eine gute Idee zu Fragen, für Allgemeine Beratung über die Programmierung Konstrukte, die nur als die gleiche in verschiedenen Sprachen. Suchen Sie für die Beratung, die für jede einzelne Sprache. Sie sind anders, nachdem alle, alle mit verschiedenen guten Praktiken. Also mein Rat wäre, um weiterhin in den Sprachen, wo es funktioniert und wo es gilt allgemein eine gute Sache zu tun. Kommentarautor: PlasmaHH
@ZathrusWriter Die Frage sagt "Ende" for "- Schleife", nicht "Ende der Schleife". Die weiter in der Frage ist beabsichtigt, zu springen, um das Ende der for - Schleife. Kommentarautor: hvd
@hvd lol, ich brauche eine bessere Brille... sorry 😀 Kommentarautor: Zathrus Writer
@Rookie: ich würde sagen, es gibt genug große und kleine Unterschiede zwischen php und c++, die Sie sollten vorsichtig sein, in jeder Zeile und nicht nur versuchen, "visuell zu übersetzen" den source-code. Imho ist dies nur eine der vielen Reise-Minen, die Sie stoßen bei der übersetzung zwischen allen Sprachen, nicht nur php und c++. Kommentarautor: PlasmaHH

InformationsquelleAutor der Frage Rookie | 2012-09-10

Schreibe einen Kommentar