E2030 Etiquette de CASE dupliquée (Delphi)
Remonter à Messages d'erreur et d'avertissement (Delphi)
Ce message d'erreur se produit lorsqu'il y a plus d'un libellé CASE avec une valeur spécifiée dans une instruction case.
program Produce; function DigitCount(I: Integer): Integer; begin case Abs(I) of 0: DigitCount := 1; 0 ..9: DigitCount := 1; (*<-- Message d'erreur ici*) 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.
Ici nous n'avons pas fait attention et mentionné deux fois le libellé CASE 0.
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.
En général, le problème n'est peut-être pas si facile à cerner lorsque vous avez des constantes symboliques et des intervalles de libellés CASE - vous devrez peut-être écrire les valeurs réelles des constantes pour trouver ce qui ne va pas.