2012-10-13 4 views
2

Je rencontre quelques problèmes avec cette version. D'abord ce n'est pas tout, ça ne chargera pas la classe principale. Deuxièmement, j'ai besoin de l'utilisateur pour entrer leur choix de musique, puis j'ai besoin du compilateur pour imprimer la sélection. Quelqu'un peut-il m'aider avec ce code? S'il vous plaît excusez-moi, mais je suis totalement nouveau à la programmation.Relevé de relevé de commutateur

public class music { 

public static void music(String[] args) { 

    System.out.println("What's your favorite kind music?: "); 
    System.out.println("1. Country"); 
    System.out.println("2. Rock"); 
    System.out.println("3. Heavy Metal"); 
    System.out.println("4. Folk"); 

    try{ 
    BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in)); 
    int s = Integer.parseInt(bufferRead.readLine()); 
     switch(s){ 
      case 1: 
       System.out.println("Country"); 
       break; 
      case 2: 
       System.out.println("Rock"); 
       break; 
      case 3: 
       System.out.println("Heavy Metal"); 
       break; 
      case 4: 
       System.out.println("Folk"); 
       break; 
      default: 
       System.out.println("Country"); 
       break; 
     } 



}catch(IOException e){ 
     e.printStackTrace(); 
    } 
+0

Que se passe-t-il? Avez-vous une erreur? Trace de la pile? Comment l'avez-vous manqué? –

+0

Je le compile avec JCreator LE et il dit "-------------------- Configuration: musique - JDK version 1.7.0_07 - ------ -------------- Erreur: Impossible de trouver ou de charger la musique de classe principale Processus terminé " – user1743771

+0

Ok j'ai essayé le" public static void principal (String [] args) {"et il est toujours en train de me donner une volonté de ne pas charger la musique de classe principale. – user1743771

Répondre

1

Solution

Le problème avec la source telle que diffusée est que vous ne disposez pas d'un entry point à votre classe (par exemple une méthode appelée main).

Suggestions

Puisque vous avez mentionné que vous êtes également à la programmation nouvelle, je me suis permis d'inclure quelques suggestions stylistiques pour rendre votre code plus simple et plus facile à lire (OMI):

import static java.lang.System.in; 
import static java.lang.System.out; 

import java.util.LinkedHashMap; 
import java.util.Map; 
import java.util.Map.Entry; 
import java.util.Scanner; 

public class Music { 

    private static final String DEFAULT_MUSIC = "Country"; 

    public static void main(String[] args) { 
     Map<Integer, String> musicOptions = new LinkedHashMap<Integer, String>(); 
     musicOptions.put(1, DEFAULT_MUSIC); 
     musicOptions.put(2, "Rock"); 
     musicOptions.put(3, "Heavy Metal"); 
     musicOptions.put(4, "Folk"); 

     out.println("What's your favorite kind music?: "); 
     for (Entry<Integer, String> option : musicOptions.entrySet()) { 
      Integer choice = option.getKey(); 
      String music = option.getValue(); 

      out.printf("%d. %s\n", choice, music); 
     } 

     final int choice = new Scanner(in).nextInt(); 
     String music = musicOptions.get(choice); 
     if (music == null) { 
      music = DEFAULT_MUSIC; 
     } 

     out.println(music); 
    } 

} 

Lectures

http://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextInt() http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html

+0

Ok, j'ai mis votre int final et j'ai pu construire, mais il est venu avec l'erreur "Impossible de trouver le symbole" emplacement ligne 10 – user1743771

+0

J'ai compilé et testé cela, êtes-vous sûr de l'avoir copié correctement? Avez-vous copié les importations statiques au sommet? – btiernay

+0

J'ai raté une ligne. Merci de votre aide! – user1743771

4
public static void music(String[] args) 

Cela ne ressemble pas à la méthode principale. Vous devez utiliser main en place de music: -

En outre, l'unité compilation contenant cette classe doit avoir le même nom que celui de la classe. Et mieux utiliser votre nom de classe comme: - Music et enregistrez-le comme Music.java

3

Votre méthode doit s'appeler main. Revoir this tutorial.

Au lieu de:

public static void music(String[] args) { 

essayer:

public static void main(String[] args) { 

public static void music(String[] args) définit une méthode statique avec le même nom que la classe.

3

votre code est semble correct mais vous ne pouvez pas renommer principale méthode, main() signature de la méthode doit être public static void main(String[] args) et votre code devrait être comme

public class Music{ 
    public static void main(String[] args) { 
    ... 
    } 
} 

Remarque-signature principale méthode est constante et trouvez le signification ci-dessous.

public - public Tout le monde peut y accéder.

static - L'environnement Java devrait être capable d'appeler cette méthode sans créer d'instance de la classe, donc cette méthode doit être déclarée comme statique.

void - le retour est nul, donc il n'y a pas de valeur de retour.

principal() - le nom de la méthode, principal car c'est la méthode principale.

Chaîne args [] - arguments de cette méthode. Cette méthode doit recevoir un tableau de chaînes, et le tableau s'appellera 'args'.

+0

Vous voulez dire 'public class Music'? – DNA

+0

a mis à jour le code. –

1
nom de la fonction

doit être main() pas de la musique()

public class music { 

public static void main(String[] args) { 

    System.out.println("What's your favorite kind music?: "); 
    System.out.println("1. Country"); 
    System.out.println("2. Rock"); 
    System.out.println("3. Heavy Metal"); 
    System.out.println("4. Folk"); 

    try{ 
    BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in)); 
    int s = Integer.parseInt(bufferRead.readLine()); 
     switch(s){ 
      case 1: 
       System.out.println("Country"); 
       break; 
      case 2: 
       System.out.println("Rock"); 
       break; 
      case 3: 
       System.out.println("Heavy Metal"); 
       break; 
      case 4: 
       System.out.println("Folk"); 
       break; 
      default: 
       System.out.println("Country"); 
       break; 
     } 



}catch(IOException e){ 
     e.printStackTrace(); 
    } 
} 
} 
+1

Il n'y a aucune raison de publier le code complet, si le problème est juste avec la ligne 'first'. –