2016-10-20 1 views
-6

Kann mir jemand sagen, was mit meinem Code falsch ist (Zeile 12 switch (code))? Es wird nicht kompiliert.Java-Fehler mit Switch-Anweisung

import java.util.Scanner; 
public class Switch 
{ 
    public static void main(String [] args) 
    { 
     Scanner in = new Scanner(System.in); 
     System.out.println("please entre a province's official code abbreviation"); 
     String code = in.next(); 

     double shipCost=0.0; 

     switch (code) { 
      case"NS": case"NB":case"PE": 
       shipCost=29.95; 
       break; 
      case"NL": 
       shipCost=34.95; 
       break; 
      case"OC": case"ON": 
       shipCost=24.95; 
       break; 
      case"MB":case"SK": 
       shipCost=29.95; 
       break; 
      case"AB":case"BC": 
       shipCost=37.95; 
       break; 
      case"NU":case"NT":case"YT": 
       shipCost=39.95; 
       break; 
      default: 
       shipCost=0; 
     } 

     System.out.println("shipping cost in "+code+"is"+shipCost); 
    } 
} 

1 error found: Flle: /Users/JamesMacBook/Downloads/Solutions_ReviewExercises/Switch.java [line: 12]
Error: /Users/JamesMacBook/Downloads/Solutions_ReviewExercises/Switch.java:12: incompatible types
found : java.lang.String
required: int

was falsch ist mit der Linie 12? wie kann ich es reparieren ?

Danke

+1

Bitte Code als richtig formatierten Text _within_in der Frage, nicht als Bild. – jmoerdyk

+0

Es ist die Java-Version Luke, ältere Java-Versionen erlauben keine Strings im Switch. – fvu

+4

bitte nicht Links zu Ihrem Code, wer weiß, wo dieser Link wird jemand versuchen, Ihnen zu helfen. SO können Sie Ihren Code auf der Website –

Antwort

1

Der Fehler Sie sagt es für einen int sucht aber eine String zur Verfügung gestellt. Java hat Unterstützung für das Wechseln von String s in Version 7 hinzugefügt, also stellen Sie sicher, dass Sie das haben. Ich bin nicht ganz sicher, wie Sie Ihre Java-Version auf OSX überprüfen, aber unter Windows geben Sie java -version in die Eingabeaufforderung ein.