E2030 Doppeltes Case-Label (Delphi)
Nach oben zu Fehler- und Warnungsmeldungen (Delphi)
Diese Fehlermeldung tritt auf, wenn mehr als ein Case-Label mit dem angegebenen Wert in einer Case-Anweisung existiert.
program Produce; function DigitCount(I: Integer): Integer; begin case Abs(I) of 0: DigitCount := 1; 0 ..9: DigitCount := 1; (*<-- Hier die Fehlermeldung*) 10 ..99: DigitCount := 2; 100 ..999: DigitCount := 3; 1000 ..9999: DigitCount := 4; 10000 ..99999: DigitCount := 5; 100000 ..999999: DigitCount := 6; 1000000 ..9999999: DigitCount := 7; 10000000 ..99999999: DigitCount := 8; 100000000..999999999: DigitCount := 9; else DigitCount := 10; end; end; begin Writeln( DigitCount(12345) ); end.
Hier haben wir nicht aufgepasst und den Case-Label 0 zweimal genannt.
program Solve; function DigitCount(I: Integer): Integer; begin case Abs(I) of 0 ..9: DigitCount := 1; 10 ..99: DigitCount := 2; 100 ..999: DigitCount := 3; 1000 ..9999: DigitCount := 4; 10000 ..99999: DigitCount := 5; 100000 ..999999: DigitCount := 6; 1000000 ..9999999: DigitCount := 7; 10000000 ..99999999: DigitCount := 8; 100000000..999999999: DigitCount := 9; else DigitCount := 10; end; end; begin Writeln( DigitCount(12345) ); end.
Im Allgemeinen ist das Problem nicht so einfach zu finden, wenn Sie Symbolkonstanten und Bereiche von Case-Labels verwenden – gegebenenfalls müssen Sie die tatsächlichen Werte der Konstanten notieren, um die Fehlerursache feststellen zu können.