Java 使用循环和公式初始化数组

Java 使用循环和公式初始化数组,java,arrays,Java,Arrays,方向- 在类实例变量区域中: 声明一个整数变量以保存注释数,将其设置为13 声明并分配大小为13的GuitarString对象数组。 注意:确保删除原始实例变量(stringA和stringC) 声明一个字符串类型的注释数组,大小为13 使用以下13个值初始化notes数组: “C”、“C”、“D”、“D”、“E”、“F”、“F”、“G”、“G”、“A”、“A”、“B”、“H” 在主要方法中: 初始化整个八度音阶的主吉他弦数组。 您必须使用循环,而不是十三个单独的语句。 记住为每个吉他弦分配

方向-

在类实例变量区域中:

  • 声明一个整数变量以保存注释数,将其设置为13
  • 声明并分配大小为13的GuitarString对象数组。 注意:确保删除原始实例变量(stringA和stringC)
  • 声明一个字符串类型的注释数组,大小为13
  • 使用以下13个值初始化notes数组: “C”、“C”、“D”、“D”、“E”、“F”、“F”、“G”、“G”、“A”、“A”、“B”、“H” 在主要方法中:
初始化整个八度音阶的主吉他弦数组。 您必须使用循环,而不是十三个单独的语句。 记住为每个吉他弦分配新的。 使用以下公式计算每个字符串的频率: 双频=440.0*数学功率(1.05956,指数-9); p12.弦[索引]=新吉他弦(频率)

以下是上述索引的映射: 0-中间C(“C”) 1-C#在中间C上方(“C#”) 中间C上方的2-D(“D”) 中间C上方的3-D(“D”) 4-E中C上方(“E”) 5-F中间C上方(“F”) 6-F#在中间C上方(“F#”) 7-中间C上方的G(“G”) 8-G#在中间C上方(“G#”) 9-中间C上方的A(“A”) 10-A位于中间C上方(“A”) 11-B中C上方(“B”) 12-高C(“H”)

以上音符代表钢琴从中C到高C的一个八度

我的代码-

public class P12 {



int numNotes = 13;
GuitarString[] GuitarString = new GuitarString[13];
public String[] strings = new String[]{"C", "C#","D","D#","E","F","F#","G","G#","A","A#","B","H"};



public static void main(String[] args) {

    // Instantiate object
    P12 p12 = new P12();



    for(int index = 0; index <= p12.numNotes; index++){
        double frequency = 440.0 * Math.pow(1.05956, index - 9);
        p12.strings[index] = new GuitarString(frequency);
    }
公共类P12{
int numNotes=13;
吉他弦[]吉他弦=新吉他弦[13];
公共字符串[]strings=新字符串[]{“C”、“C”、“D”、“D”、“E”、“F”、“F”、“G”、“G”、“A”、“A”、“B”、“H”};
公共静态void main(字符串[]args){
//实例化对象
P12 P12=新的P12();
对于(int index=0;index尝试以下方法:

public class P12 {

int numNotes = 13;
public GuitarString[] gStrings = new GuitarString[13];
public String[] strings = new String[]{"C", "C#","D","D#","E","F","F#","G","G#","A","A#","B","H"};

public static void main(String[] args) {

    // Instantiate object
    P12 p12 = new P12();

    for(int index = 0; index <= p12.numNotes; index++){
        double frequency = 440.0 * Math.pow(1.05956, index - 9);
        p12.strings[index] = new p12.GuitarString(frequency);
    }
}

private class GuitarString {

    double freq;

    GuitarString(double frequency) {
        freq = frequency;
    }

}
公共类P12{
int numNotes=13;
公共吉他弦[]gStrings=新吉他弦[13];
公共字符串[]strings=新字符串[]{“C”、“C”、“D”、“D”、“E”、“F”、“F”、“G”、“G”、“A”、“A”、“B”、“H”};
公共静态void main(字符串[]args){
//实例化对象
P12 P12=新的P12();

对于(int index=0;index),您的讲师似乎希望您创建一个新的GuitarString对象类型,而不是创建一个Strings数组。当我将其更改为一个新对象时,我得到:“类型不匹配:无法从GuitarString转换为String”不相关的旁注:我知道你的导师说,音符H等于中间C,但实际上H等于音符B:。以防万一有音乐家看到这篇文章。你能把你正在使用的代码添加到你的答案中吗?更改了上面的一些代码。