我在这个版本上遇到了一些问题。首先,它并不是所有的,它不会加载主类。其次,我需要用户输入他们选择的音乐,然后我需要编译器打印选择。有人能帮我写这段代码吗?请原谅,我对编程完全陌生。
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();
}发布于 2012-10-14 04:07:09
解决方案
所发布的源代码的问题在于您没有指向您的类的entry point (即名为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-14 04:00:44
public static void music(String[] args)这看起来不像main方法。你应该用main代替music:-
public static void main(String[] args)此外,包含此类的compilation单元的名称应该与类的名称相同。最好使用您的类名:- Music并将其另存为Music.java
发布于 2012-10-14 04:00:58
您的方法必须命名为main。查看this tutorial。
而不是:
public static void music(String[] args) {尝试:
public static void main(String[] args) {public static void music(String[] args)定义了一个与类同名的静态方法。
https://stackoverflow.com/questions/12876471
复制相似问题