Hallo,
ich habe ein (Greenfoot) Programm (das Klavier), dass einfach mit einer for Schleife geht. Es geht darum, weisse und schwarze Tasten anzeigen zu lassen. Hierfür kann man bequem beide for Schleifen hintereinander laufen lassen.
Ich möchte das Programm nun abändern und mit ein oder zwei while Schleifen anzeigen lassen. Leider geht das nicht. Es werden nur die weissen Tasten angezeigt, die schwarzen werden übersprungen. Wenn ich den ersten Block lösche, werden die schwarzen Tasten angezeigt. Habe ich einen logischen Fehler? Ja, er muss logisch sein, denn das Programm kompiliert. Sehr dankbar über den entscheidenen Tipp. Der Fehler kann nur in diesem Block liegen. Da er nach der Abwandlung der for in die while schleife aufgetaucht ist.Hier der Code:
ich habe ein (Greenfoot) Programm (das Klavier), dass einfach mit einer for Schleife geht. Es geht darum, weisse und schwarze Tasten anzeigen zu lassen. Hierfür kann man bequem beide for Schleifen hintereinander laufen lassen.
Ich möchte das Programm nun abändern und mit ein oder zwei while Schleifen anzeigen lassen. Leider geht das nicht. Es werden nur die weissen Tasten angezeigt, die schwarzen werden übersprungen. Wenn ich den ersten Block lösche, werden die schwarzen Tasten angezeigt. Habe ich einen logischen Fehler? Ja, er muss logisch sein, denn das Programm kompiliert. Sehr dankbar über den entscheidenen Tipp. Der Fehler kann nur in diesem Block liegen. Da er nach der Abwandlung der for in die while schleife aufgetaucht ist.Hier der Code:
Java:
/**
* Create the piano keys (white and black) and place them in the world.
*/
private void makeKeys()
{
int i =0;
while ( i < whiteKeys.length) {
Key key = new Key(whiteKeys[i], whiteNotes[i]+".wav", "white-key.png", "white-key-down.png");
addObject(key, i*63 + 54, 140);
i = i+1;
}
// make the black keys
while( i < blackKeys.length) {
if( ! blackKeys[I].equals("") ) {
Key key = new Key(blackKeys[i], blackNotes[i]+".wav", "black-key.png", "black-key-down.png");
addObject(key, i*63 + 85, 86);
i=i+1;
}
}
}
Zuletzt bearbeitet von einem Moderator: