2

このビルドでいくつか問題が発生しています。まず、メインクラスをロードしないのはそれだけではありません。次に、ユーザーが選択した音楽を入力する必要があります。次に、選択した音楽を印刷するコンパイラが必要です。誰かがこのコードを手伝ってくれますか?失礼しますが、私はプログラミングにまったく慣れていません。

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();
    }
4

5 に答える 5

4
public static void music(String[] args)

これはメインメソッドのようには見えません。mainの代わりに使用する必要がありますmusic:-

public static void main(String[] args)

また、compilationこのクラスを含むユニットは、クラスの名前と同じ名前である必要があります。そして、クラス名を:-として使用し、次のようMusicに保存することをお勧めしますMusic.java

于 2012-10-13T20:00:44.093 に答える
3

メソッドには。という名前を付ける必要がありますmainこのチュートリアルを確認してください。

それ以外の:

public static void music(String[] args) {

試す:

public static void main(String[] args) {

public static void music(String[] args)クラスと同じ名前の静的メソッドを定義します。

于 2012-10-13T20:00:57.523 に答える
3

コードは問題ないように見えますが、メインメソッドの名前を変更することはできません。main()メソッドのシグネチャは次のようにする必要がpublic static void main(String[] args)あります。コードは次のようになります。

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

-メインメソッドのシグネチャは一定であり、以下の重要性を確認してください。

public -public誰でもアクセスできます。

static -Java環境は、クラスのインスタンスを作成せずにこのメソッドを呼び出すことができるはずなので、このメソッドはstaticとして宣言する必要があります。

void-戻り値がないため、voidを返します

main() -メソッドの名前。mainメソッドであるためmain。

Stringargs[] -このメソッドへの引数。このメソッドには文字列の配列を指定する必要があり、その配列は「args」と呼ばれます。

于 2012-10-13T20:01:06.107 に答える
1

関数名main()はmusic()であってはなりません

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();
    }
}
}
于 2012-10-13T20:01:28.647 に答える
1

解決

投稿されたソースの問題は、クラスへのエントリポイントmain(つまり、と呼ばれるメソッド)がないことです。

提案

プログラミングも初めてだとおっしゃっていたので、コードをよりシンプルで読みやすくするために、いくつかのスタイルの提案を自由に取り入れました(IMO)。

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);
    }

}

参考文献

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

于 2012-10-13T20:07:08.593 に答える