Во-первых, мой код (он далек от совершенства, я действительно не знаю, что я делаю) таков:
public enum Chord { MAJOR, MINOR, DIMINISHED, BASS, BASS2 }
public enum Scales { C, D, E, F, G, A }
public class EnumTest
{
Chord chord;
public EnumTest(Chord chord)
{
this.chord = chord;
}
public void tellItLikeItIs()
{
switch (chord) {
case MAJOR:
for(Scales C : Scales.values())
System.out.println(C + " " + C.ordinal());
break;
//I've tried in the CHORD enum going MAJOR(0, 2, 4) but I don't think that was correct
case MINOR: System.out.println("C, Eb, G");
break;
default:
System.out.println("I screwed up");
break;
}
}
public static void main(String[] args)
{
EnumTest firstDay = new EnumTest(Chord.MAJOR);
firstDay.tellItLikeItIs();
EnumTest thirdDay = new EnumTest(Chord.MINOR);
thirdDay.tellItLikeItIs();
System.out.println("Here are all Scale degrees" +
" and their ordinal values: ");
for(Scales C : Scales.values())
System.out.println(C + " " + C.ordinal());
}
}
Возможно, мне не хватает нескольких скобок и прочего, у меня были проблемы с публикацией некоторых из них с помощью инструмента кода. Мой вопрос: для случая MAJOR я могу заставить компилятор печатать C 0, D 1, E 2 и т. Д., За исключением того, что я хочу, чтобы он печатал только C, E и G (0, 2, 4). Есть ли способ выбрать ТОЛЬКО эти 3 порядковых значения для основного аккорда и распечатать их?
Кроме того, в перечислении Scales мне также нужны острые предметы (C, C #, D, D # ..), за исключением того, что острые предметы являются «недопустимыми символами», и я получаю _MusicChord\Scales.java:2: illegal character: \35
Я пытался изучить escape-символы, но я не понял статью, которую я прочитал, или я смотрел не на ту вещь. Может ли кто-нибудь также сказать мне, как добавить # в класс Scales, чтобы они не были недопустимыми символами? Любая помощь приветствуется