[C++] Improve Nested Switch() Statement

closed account (G30oGNh0)
Hey guys just a quick one.

I am writing a program that prompts the user for a key and a scale which returns the scale structure for the musical key.

I'd like to know of any other way of doing this seemingly big switch statement?

Thanks in advance and please document code whenever necessary.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
void Scale::setNotes()
{
	switch(note)
	{
	case A:
		switch(scale)
		{
		case IONIAN:
		case DORIAN:
		case PHYRIGIAN:
		case LYDIAN:
		case MIXOLYDIAN:
		case AEOLIAN:
		case LOCRIAN:
		}
	case AS:
		switch(scale)
		{
		case IONIAN:
		case DORIAN:
		case PHYRIGIAN:
		case LYDIAN:
		case MIXOLYDIAN:
		case AEOLIAN:
		case LOCRIAN:
		}
	case B:
		switch(scale)
		{
		case IONIAN:
		case DORIAN:
		case PHYRIGIAN:
		case LYDIAN:
		case MIXOLYDIAN:
		case AEOLIAN:
		case LOCRIAN:
		}
	case C:
		switch(scale)
		{
		case IONIAN:
		case DORIAN:
		case PHYRIGIAN:
		case LYDIAN:
		case MIXOLYDIAN:
		case AEOLIAN:
		case LOCRIAN:
		}
	case CS:
		switch(scale)
		{
		case IONIAN:
		case DORIAN:
		case PHYRIGIAN:
		case LYDIAN:
		case MIXOLYDIAN:
		case AEOLIAN:
		case LOCRIAN:
		}
	case D:
		switch(scale)
		{
		case IONIAN:
		case DORIAN:
		case PHYRIGIAN:
		case LYDIAN:
		case MIXOLYDIAN:
		case AEOLIAN:
		case LOCRIAN:
		}
	case DS:
		switch(scale)
		{
		case IONIAN:
		case DORIAN:
		case PHYRIGIAN:
		case LYDIAN:
		case MIXOLYDIAN:
		case AEOLIAN:
		case LOCRIAN:
		}
	case E:
		switch(scale)
		{
		case IONIAN:
		case DORIAN:
		case PHYRIGIAN:
		case LYDIAN:
		case MIXOLYDIAN:
		case AEOLIAN:
		case LOCRIAN:
		}
	case F:
		switch(scale)
		{
		case IONIAN:
		case DORIAN:
		case PHYRIGIAN:
		case LYDIAN:
		case MIXOLYDIAN:
		case AEOLIAN:
		case LOCRIAN:
		}
	case FS:
		switch(scale)
		{
		case IONIAN:
		case DORIAN:
		case PHYRIGIAN:
		case LYDIAN:
		case MIXOLYDIAN:
		case AEOLIAN:
		case LOCRIAN:
		}
	case G:
		switch(scale)
		{
		case IONIAN:
		case DORIAN:
		case PHYRIGIAN:
		case LYDIAN:
		case MIXOLYDIAN:
		case AEOLIAN:
		case LOCRIAN:
		}
	case GS:
		switch(scale)
		{
		case IONIAN:
		case DORIAN:
		case PHYRIGIAN:
		case LYDIAN:
		case MIXOLYDIAN:
		case AEOLIAN:
		case LOCRIAN:
		}
		
	}
}
Topic archived. No new replies allowed.