まず、私のコード(完璧にはほど遠いです。自分が何をしているのかよくわかりません)は次のとおりです。
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、E、G(0、2、4)のみを出力することを除いて、コンパイラにC 0、D 1、E2などを出力させることができるということです。メジャーコードに対してこれらの3つの順序値のみを選択し、それらを印刷する方法はありますか?
また、Scales列挙型では、シャープが「違法な文字」であり、エスケープ文字を調べようとしたことを除いて、シャープ(C、C#、D、D#..)も必要ですが、_MusicChord\Scales.java:2: illegal character: \35
どちらも記事を理解していませんでした読んだか、間違ったものを見ていました。誰かが#を違法な文字にせずにScalesクラスに追加する方法を教えてもらえますか?どんな助けでも大歓迎です